home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1996 Christmas / macformat-045.iso / Shareware Plus / Developers / enteract-377 / enteract-377.sit / EnterAct Stuff / hAWK project / AWK Source / EVAL.C < prev    next >
MacBinary  |  1995-04-08  |  32.3 KB  |  [TEXT/TOPC]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
10% dexvert Jesper Olsen Module (music/jesperOlsen) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Sat Apr 8 01:32:14 1995, modified Sat Apr 8 01:32:14 1995, creator 'TOPC', type ASCII, 31951 bytes "EVAL.C" , at 0x7d4f 804 bytes resource default (weak)
99% file data default
49% TrID Macintosh plain text (MacBinary) default
33% TrID TTComp archive compressed (bin-4K) default (weak)
16% TrID MacBinary 2 default (weak)
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[TOPC]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 06 45 56 41 4c 2e 43 | 00 00 00 00 00 00 00 00 |..EVAL.C|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 54 4f 50 | 43 01 00 00 00 00 00 00 |.TEXTTOP|C.......|
|00000050| 00 00 00 00 00 7c cf 00 | 00 03 24 ab ab d0 5e ab |.....|..|..$...^.|
|00000060| ab d0 5e 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..^.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 8a 45 00 00 |........|.....E..|
|00000080| 2f 2a 0d 20 2a 20 65 76 | 61 6c 2e 63 20 2d 20 67 |/*. * ev|al.c - g|
|00000090| 61 77 6b 20 70 61 72 73 | 65 20 74 72 65 65 20 69 |awk pars|e tree i|
|000000a0| 6e 74 65 72 70 72 65 74 | 65 72 20 0d 20 2a 2f 0d |nterpret|er . */.|
|000000b0| 0d 2f 2a 20 43 6f 70 79 | 72 69 67 68 74 20 a9 20 |./* Copy|right . |
|000000c0| 31 39 38 36 2c 20 31 39 | 38 38 2c 20 31 39 38 39 |1986, 19|88, 1989|
|000000d0| 20 31 39 39 31 20 74 68 | 65 20 46 72 65 65 20 53 | 1991 th|e Free S|
|000000e0| 6f 66 74 77 61 72 65 20 | 46 6f 75 6e 64 61 74 69 |oftware |Foundati|
|000000f0| 6f 6e 2c 20 49 6e 63 2e | 0d 20 2a 20 09 09 54 68 |on, Inc.|. * ..Th|
|00000100| 69 73 20 66 69 6c 65 20 | 69 73 20 70 61 72 74 20 |is file |is part |
|00000110| 6f 66 20 47 41 57 4b 2c | 20 74 68 65 20 47 4e 55 |of GAWK,| the GNU|
|00000120| 20 69 6d 70 6c 65 6d 65 | 6e 74 61 74 69 6f 6e 20 | impleme|ntation |
|00000130| 6f 66 20 74 68 65 0d 20 | 2a 20 41 57 4b 20 50 72 |of the. |* AWK Pr|
|00000140| 6f 67 61 6d 6d 69 6e 67 | 20 4c 61 6e 67 75 61 67 |ogamming| Languag|
|00000150| 65 2c 20 6d 6f 64 69 66 | 69 65 64 20 66 6f 72 20 |e, modif|ied for |
|00000160| 74 68 65 20 4d 61 63 69 | 6e 74 6f 73 68 20 28 61 |the Maci|ntosh (a|
|00000170| 6c 73 6f 20 63 61 6c 6c | 65 64 20 68 41 57 4b 29 |lso call|ed hAWK)|
|00000180| 2e 0d 20 2a 20 09 09 47 | 41 57 4b 20 69 73 20 66 |.. * ..G|AWK is f|
|00000190| 72 65 65 20 73 6f 66 74 | 77 61 72 65 3b 20 79 6f |ree soft|ware; yo|
|000001a0| 75 20 63 61 6e 20 72 65 | 64 69 73 74 72 69 62 75 |u can re|distribu|
|000001b0| 74 65 20 6f 72 20 6d 6f | 64 69 66 79 0d 20 2a 20 |te or mo|dify. * |
|000001c0| 69 74 20 75 6e 64 65 72 | 20 74 68 65 20 74 65 72 |it under| the ter|
|000001d0| 6d 73 20 6f 66 20 74 68 | 65 20 47 4e 55 20 47 65 |ms of th|e GNU Ge|
|000001e0| 6e 65 72 61 6c 20 50 75 | 62 6c 69 63 20 4c 69 63 |neral Pu|blic Lic|
|000001f0| 65 6e 73 65 20 61 73 20 | 70 75 62 6c 69 73 68 65 |ense as |publishe|
|00000200| 64 20 62 79 0d 20 2a 20 | 74 68 65 20 46 72 65 65 |d by. * |the Free|
|00000210| 20 53 6f 66 74 77 61 72 | 65 20 46 6f 75 6e 64 61 | Softwar|e Founda|
|00000220| 74 69 6f 6e 3b 20 65 69 | 74 68 65 72 20 76 65 72 |tion; ei|ther ver|
|00000230| 73 69 6f 6e 20 31 2c 20 | 6f 72 20 61 6e 79 20 6c |sion 1, |or any l|
|00000240| 61 74 65 72 20 76 65 72 | 73 69 6f 6e 2e 0d 20 2a |ater ver|sion.. *|
|00000250| 20 09 09 47 41 57 4b 20 | 69 73 20 64 69 73 74 72 | ..GAWK |is distr|
|00000260| 69 62 75 74 65 64 20 69 | 6e 20 74 68 65 20 68 6f |ibuted i|n the ho|
|00000270| 70 65 20 74 68 61 74 20 | 69 74 20 77 69 6c 6c 20 |pe that |it will |
|00000280| 62 65 20 75 73 65 66 75 | 6c 2c 0d 20 2a 20 62 75 |be usefu|l,. * bu|
|00000290| 74 20 57 49 54 48 4f 55 | 54 20 41 4e 59 20 57 41 |t WITHOU|T ANY WA|
|000002a0| 52 52 41 4e 54 59 3b 20 | 77 69 74 68 6f 75 74 20 |RRANTY; |without |
|000002b0| 65 76 65 6e 20 74 68 65 | 20 69 6d 70 6c 69 65 64 |even the| implied|
|000002c0| 20 77 61 72 72 61 6e 74 | 79 20 6f 66 0d 20 2a 20 | warrant|y of. * |
|000002d0| 4d 45 52 43 48 41 4e 54 | 41 42 49 4c 49 54 59 20 |MERCHANT|ABILITY |
|000002e0| 6f 72 20 46 49 54 4e 45 | 53 53 20 46 4f 52 20 41 |or FITNE|SS FOR A|
|000002f0| 20 50 41 52 54 49 43 55 | 4c 41 52 20 50 55 52 50 | PARTICU|LAR PURP|
|00000300| 4f 53 45 2e 20 53 65 65 | 20 74 68 65 0d 20 2a 20 |OSE. See| the. * |
|00000310| 47 4e 55 20 47 65 6e 65 | 72 61 6c 20 50 75 62 6c |GNU Gene|ral Publ|
|00000320| 69 63 20 4c 69 63 65 6e | 73 65 20 66 6f 72 20 6d |ic Licen|se for m|
|00000330| 6f 72 65 20 64 65 74 61 | 69 6c 73 2e 0d 20 2a 20 |ore deta|ils.. * |
|00000340| 09 09 59 6f 75 20 73 68 | 6f 75 6c 64 20 68 61 76 |..You sh|ould hav|
|00000350| 65 20 72 65 63 65 69 76 | 65 64 20 61 20 63 6f 70 |e receiv|ed a cop|
|00000360| 79 20 6f 66 20 74 68 65 | 20 47 4e 55 20 47 65 6e |y of the| GNU Gen|
|00000370| 65 72 61 6c 20 50 75 62 | 6c 69 63 20 4c 69 63 65 |eral Pub|lic Lice|
|00000380| 6e 73 65 0d 20 2a 20 61 | 6c 6f 6e 67 20 77 69 74 |nse. * a|long wit|
|00000390| 68 20 47 41 57 4b 3b 20 | 73 65 65 20 74 68 65 20 |h GAWK; |see the |
|000003a0| 66 69 6c 65 20 22 43 4f | 50 59 49 4e 47 20 68 41 |file "CO|PYING hA|
|000003b0| 57 4b 22 2e 20 49 66 20 | 6e 6f 74 2c 20 77 72 69 |WK". If |not, wri|
|000003c0| 74 65 20 74 6f 0d 20 2a | 20 74 68 65 20 46 72 65 |te to. *| the Fre|
|000003d0| 65 20 53 6f 66 74 77 61 | 72 65 20 46 6f 75 6e 64 |e Softwa|re Found|
|000003e0| 61 74 69 6f 6e 2c 20 36 | 37 35 20 4d 61 73 73 20 |ation, 6|75 Mass |
|000003f0| 41 76 65 2c 20 43 61 6d | 62 72 69 64 67 65 2c 20 |Ave, Cam|bridge, |
|00000400| 4d 41 20 30 32 31 33 39 | 2c 20 55 53 41 2e 0d 20 |MA 02139|, USA.. |
|00000410| 2a 20 4d 6f 64 69 66 69 | 65 64 20 66 6f 72 20 54 |* Modifi|ed for T|
|00000420| 48 49 4e 4b 20 43 20 34 | 20 6f 6e 20 74 68 65 20 |HINK C 4| on the |
|00000430| 4d 61 63 69 6e 74 6f 73 | 68 20 62 79 20 4b 65 6e |Macintos|h by Ken|
|00000440| 20 45 61 72 6c 65 20 28 | 44 79 6e 61 62 79 74 65 | Earle (|Dynabyte|
|00000450| 29 20 41 75 67 20 31 39 | 39 31 2e 0d 20 2a 2f 0d |) Aug 19|91.. */.|
|00000460| 20 23 69 6e 63 6c 75 64 | 65 20 3c 6d 61 74 68 2e | #includ|e <math.|
|00000470| 68 3e 0d 23 69 6e 63 6c | 75 64 65 20 22 41 57 4b |h>.#incl|ude "AWK|
|00000480| 2e 48 22 0d 0d 65 78 74 | 65 72 6e 20 76 6f 69 64 |.H"..ext|ern void|
|00000490| 20 64 6f 5f 70 72 69 6e | 74 28 72 65 67 69 73 74 | do_prin|t(regist|
|000004a0| 65 72 20 4e 4f 44 45 20 | 2a 74 72 65 65 29 3b 0d |er NODE |*tree);.|
|000004b0| 65 78 74 65 72 6e 20 76 | 6f 69 64 20 64 6f 5f 70 |extern v|oid do_p|
|000004c0| 72 69 6e 74 66 28 4e 4f | 44 45 20 2a 74 72 65 65 |rintf(NO|DE *tree|
|000004d0| 29 3b 0d 65 78 74 65 72 | 6e 20 4e 4f 44 45 20 2a |);.exter|n NODE *|
|000004e0| 64 6f 5f 6d 61 74 63 68 | 28 4e 4f 44 45 20 2a 74 |do_match|(NODE *t|
|000004f0| 72 65 65 29 3b 0d 65 78 | 74 65 72 6e 20 4e 4f 44 |ree);.ex|tern NOD|
|00000500| 45 20 2a 64 6f 5f 73 75 | 62 28 4e 4f 44 45 20 2a |E *do_su|b(NODE *|
|00000510| 74 72 65 65 29 3b 0d 65 | 78 74 65 72 6e 20 4e 4f |tree);.e|xtern NO|
|00000520| 44 45 20 2a 64 6f 5f 67 | 65 74 6c 69 6e 65 28 4e |DE *do_g|etline(N|
|00000530| 4f 44 45 20 2a 74 72 65 | 65 29 3b 0d 65 78 74 65 |ODE *tre|e);.exte|
|00000540| 72 6e 20 4e 4f 44 45 20 | 2a 63 6f 6e 63 61 74 5f |rn NODE |*concat_|
|00000550| 65 78 70 28 4e 4f 44 45 | 20 2a 74 72 65 65 29 3b |exp(NODE| *tree);|
|00000560| 0d 65 78 74 65 72 6e 20 | 73 68 6f 72 74 20 69 6e |.extern |short in|
|00000570| 5f 61 72 72 61 79 28 4e | 4f 44 45 20 2a 73 79 6d |_array(N|ODE *sym|
|00000580| 62 6f 6c 2c 20 4e 4f 44 | 45 20 2a 73 75 62 73 29 |bol, NOD|E *subs)|
|00000590| 3b 0d 65 78 74 65 72 6e | 20 76 6f 69 64 20 64 6f |;.extern| void do|
|000005a0| 5f 64 65 6c 65 74 65 28 | 4e 4f 44 45 20 2a 73 79 |_delete(|NODE *sy|
|000005b0| 6d 62 6f 6c 2c 20 4e 4f | 44 45 20 2a 74 72 65 65 |mbol, NO|DE *tree|
|000005c0| 29 3b 0d 2f 2a 65 78 74 | 65 72 6e 20 64 6f 75 62 |);./*ext|ern doub|
|000005d0| 6c 65 20 70 6f 77 28 29 | 3b 2a 2f 0d 0d 2f 2a 45 |le pow()|;*/../*E|
|000005e0| 56 41 4c 2e 43 2a 2f 0d | 73 68 6f 72 74 20 69 6e |VAL.C*/.|short in|
|000005f0| 74 65 72 70 72 65 74 28 | 4e 4f 44 45 20 2a 74 72 |terpret(|NODE *tr|
|00000600| 65 65 29 3b 0d 4e 4f 44 | 45 20 2a 72 5f 74 72 65 |ee);.NOD|E *r_tre|
|00000610| 65 5f 65 76 61 6c 28 4e | 4f 44 45 20 2a 74 72 65 |e_eval(N|ODE *tre|
|00000620| 65 29 3b 0d 76 6f 69 64 | 20 61 73 73 69 67 6e 5f |e);.void| assign_|
|00000630| 6e 75 6d 62 65 72 28 4e | 4f 44 45 20 2a 2a 70 74 |number(N|ODE **pt|
|00000640| 72 2c 20 41 57 4b 4e 55 | 4d 20 76 61 6c 75 65 29 |r, AWKNU|M value)|
|00000650| 3b 0d 73 74 61 74 69 63 | 20 73 68 6f 72 74 20 65 |;.static| short e|
|00000660| 76 61 6c 5f 63 6f 6e 64 | 69 74 69 6f 6e 28 4e 4f |val_cond|ition(NO|
|00000670| 44 45 20 2a 74 72 65 65 | 29 3b 0d 73 68 6f 72 74 |DE *tree|);.short|
|00000680| 20 63 6d 70 5f 6e 6f 64 | 65 73 28 4e 4f 44 45 20 | cmp_nod|es(NODE |
|00000690| 2a 74 31 2c 20 4e 4f 44 | 45 20 2a 74 32 29 3b 0d |*t1, NOD|E *t2);.|
|000006a0| 73 74 61 74 69 63 20 4e | 4f 44 45 20 2a 6f 70 5f |static N|ODE *op_|
|000006b0| 61 73 73 69 67 6e 28 4e | 4f 44 45 20 2a 74 72 65 |assign(N|ODE *tre|
|000006c0| 65 29 3b 0d 73 74 61 74 | 69 63 20 4e 4f 44 45 20 |e);.stat|ic NODE |
|000006d0| 2a 66 75 6e 63 5f 63 61 | 6c 6c 28 4e 4f 44 45 20 |*func_ca|ll(NODE |
|000006e0| 2a 6e 61 6d 65 2c 20 4e | 4f 44 45 20 2a 61 72 67 |*name, N|ODE *arg|
|000006f0| 5f 6c 69 73 74 29 3b 0d | 4e 4f 44 45 20 2a 2a 67 |_list);.|NODE **g|
|00000700| 65 74 5f 6c 68 73 28 4e | 4f 44 45 20 2a 70 74 72 |et_lhs(N|ODE *ptr|
|00000710| 2c 20 73 68 6f 72 74 20 | 61 73 73 69 67 6e 29 3b |, short |assign);|
|00000720| 0d 73 74 61 74 69 63 20 | 4e 4f 44 45 20 2a 6d 61 |.static |NODE *ma|
|00000730| 74 63 68 5f 6f 70 28 4e | 4f 44 45 20 2a 74 72 65 |tch_op(N|ODE *tre|
|00000740| 65 29 3b 0d 0d 23 69 66 | 20 30 0d 2f 2a 20 57 6f |e);..#if| 0./* Wo|
|00000750| 72 6b 20 69 6e 20 70 72 | 6f 67 72 65 73 73 20 2a |rk in pr|ogress *|
|00000760| 2f 0d 76 6f 69 64 20 55 | 70 64 61 74 65 54 49 4d |/.void U|pdateTIM|
|00000770| 45 28 76 6f 69 64 29 3b | 0d 23 65 6e 64 69 66 0d |E(void);|.#endif.|
|00000780| 0d 4e 4f 44 45 20 2a 5f | 74 3b 09 09 2f 2a 20 75 |.NODE *_|t;../* u|
|00000790| 73 65 64 20 61 73 20 61 | 20 74 65 6d 70 6f 72 61 |sed as a| tempora|
|000007a0| 72 79 20 69 6e 20 6d 61 | 63 72 6f 73 20 2a 2f 0d |ry in ma|cros */.|
|000007b0| 23 69 66 64 65 66 20 4d | 53 44 4f 53 0d 64 6f 75 |#ifdef M|SDOS.dou|
|000007c0| 62 6c 65 20 5f 6d 73 63 | 35 31 62 75 67 3b 09 2f |ble _msc|51bug;./|
|000007d0| 2a 20 74 6f 20 67 65 74 | 20 61 72 6f 75 6e 64 20 |* to get| around |
|000007e0| 61 20 62 75 67 20 69 6e | 20 4d 53 43 20 35 2e 31 |a bug in| MSC 5.1|
|000007f0| 20 2a 2f 0d 23 65 6e 64 | 69 66 0d 4e 4f 44 45 20 | */.#end|if.NODE |
|00000800| 2a 72 65 74 5f 6e 6f 64 | 65 3b 0d 0d 2f 2a 20 4d |*ret_nod|e;../* M|
|00000810| 6f 72 65 20 6f 66 20 74 | 68 61 74 20 64 65 62 75 |ore of t|hat debu|
|00000820| 67 67 69 6e 67 20 73 74 | 75 66 66 20 2a 2f 0d 23 |gging st|uff */.#|
|00000830| 69 66 64 65 66 09 44 45 | 42 55 47 0d 23 64 65 66 |ifdef.DE|BUG.#def|
|00000840| 69 6e 65 20 44 42 47 5f | 50 28 58 29 20 70 72 69 |ine DBG_|P(X) pri|
|00000850| 6e 74 5f 64 65 62 75 67 | 20 58 0d 23 65 6c 73 65 |nt_debug| X.#else|
|00000860| 0d 23 64 65 66 69 6e 65 | 20 44 42 47 5f 50 28 58 |.#define| DBG_P(X|
|00000870| 29 0d 23 65 6e 64 69 66 | 0d 0d 2f 2a 20 4d 61 63 |).#endif|../* Mac|
|00000880| 72 6f 73 20 61 6e 64 20 | 76 61 72 69 61 62 6c 65 |ros and |variable|
|00000890| 73 20 74 6f 20 73 61 76 | 65 20 61 6e 64 20 72 65 |s to sav|e and re|
|000008a0| 73 74 6f 72 65 20 66 75 | 6e 63 74 69 6f 6e 20 61 |store fu|nction a|
|000008b0| 6e 64 20 6c 6f 6f 70 20 | 62 69 6e 64 69 6e 67 73 |nd loop |bindings|
|000008c0| 20 2a 2f 0d 2f 2a 0d 20 | 2a 20 74 68 65 20 76 61 | */./*. |* the va|
|000008d0| 6c 20 76 61 72 69 61 62 | 6c 65 20 61 6c 6c 6f 77 |l variab|le allow|
|000008e0| 73 20 72 65 74 75 72 6e | 2f 63 6f 6e 74 69 6e 75 |s return|/continu|
|000008f0| 65 2f 62 72 65 61 6b 2d | 6f 75 74 2d 6f 66 2d 63 |e/break-|out-of-c|
|00000900| 6f 6e 74 65 78 74 20 74 | 6f 20 62 65 0d 20 2a 20 |ontext t|o be. * |
|00000910| 63 61 75 67 68 74 20 61 | 6e 64 20 64 69 61 67 6e |caught a|nd diagn|
|00000920| 6f 73 65 64 0d 20 2a 2f | 0d 23 64 65 66 69 6e 65 |osed. */|.#define|
|00000930| 20 50 55 53 48 5f 42 49 | 4e 44 49 4e 47 28 73 74 | PUSH_BI|NDING(st|
|00000940| 61 63 6b 2c 20 78 2c 20 | 76 61 6c 29 20 28 6d 65 |ack, x, |val) (me|
|00000950| 6d 63 70 79 20 28 28 63 | 68 61 72 20 2a 29 28 73 |mcpy ((c|har *)(s|
|00000960| 74 61 63 6b 29 2c 20 28 | 63 68 61 72 20 2a 29 28 |tack), (|char *)(|
|00000970| 78 29 2c 20 73 69 7a 65 | 6f 66 20 28 6a 6d 70 5f |x), size|of (jmp_|
|00000980| 62 75 66 29 29 2c 20 76 | 61 6c 2b 2b 29 0d 23 64 |buf)), v|al++).#d|
|00000990| 65 66 69 6e 65 20 52 45 | 53 54 4f 52 45 5f 42 49 |efine RE|STORE_BI|
|000009a0| 4e 44 49 4e 47 28 73 74 | 61 63 6b 2c 20 78 2c 20 |NDING(st|ack, x, |
|000009b0| 76 61 6c 29 20 28 6d 65 | 6d 63 70 79 20 28 28 63 |val) (me|mcpy ((c|
|000009c0| 68 61 72 20 2a 29 28 78 | 29 2c 20 28 63 68 61 72 |har *)(x|), (char|
|000009d0| 20 2a 29 28 73 74 61 63 | 6b 29 2c 20 73 69 7a 65 | *)(stac|k), size|
|000009e0| 6f 66 20 28 6a 6d 70 5f | 62 75 66 29 29 2c 20 76 |of (jmp_|buf)), v|
|000009f0| 61 6c 2d 2d 29 0d 0d 73 | 74 61 74 69 63 20 6a 6d |al--)..s|tatic jm|
|00000a00| 70 5f 62 75 66 20 6c 6f | 6f 70 5f 74 61 67 3b 09 |p_buf lo|op_tag;.|
|00000a10| 2f 2a 20 61 6c 77 61 79 | 73 20 74 68 65 20 63 75 |/* alway|s the cu|
|00000a20| 72 72 65 6e 74 20 62 69 | 6e 64 69 6e 67 20 2a 2f |rrent bi|nding */|
|00000a30| 0d 73 74 61 74 69 63 20 | 73 68 6f 72 74 20 6c 6f |.static |short lo|
|00000a40| 6f 70 5f 74 61 67 5f 76 | 61 6c 69 64 20 3d 20 30 |op_tag_v|alid = 0|
|00000a50| 3b 09 2f 2a 20 6e 6f 6e | 7a 65 72 6f 20 77 68 65 |;./* non|zero whe|
|00000a60| 6e 20 6c 6f 6f 70 5f 74 | 61 67 20 76 61 6c 69 64 |n loop_t|ag valid|
|00000a70| 20 2a 2f 0d 73 74 61 74 | 69 63 20 73 68 6f 72 74 | */.stat|ic short|
|00000a80| 20 66 75 6e 63 5f 74 61 | 67 5f 76 61 6c 69 64 20 | func_ta|g_valid |
|00000a90| 3d 20 30 3b 0d 73 74 61 | 74 69 63 20 6a 6d 70 5f |= 0;.sta|tic jmp_|
|00000aa0| 62 75 66 20 66 75 6e 63 | 5f 74 61 67 3b 0d 65 78 |buf func|_tag;.ex|
|00000ab0| 74 65 72 6e 20 73 68 6f | 72 74 20 65 78 69 74 69 |tern sho|rt exiti|
|00000ac0| 6e 67 2c 20 65 78 69 74 | 5f 76 61 6c 3b 0d 0d 2f |ng, exit|_val;../|
|00000ad0| 2a 0d 20 2a 20 54 68 69 | 73 20 74 61 62 6c 65 20 |*. * Thi|s table |
|00000ae0| 69 73 20 75 73 65 64 20 | 62 79 20 74 68 65 20 72 |is used |by the r|
|00000af0| 65 67 65 78 70 20 72 6f | 75 74 69 6e 65 73 20 74 |egexp ro|utines t|
|00000b00| 6f 20 64 6f 20 63 61 73 | 65 20 69 6e 64 65 70 65 |o do cas|e indepe|
|00000b10| 6e 64 61 6e 74 0d 20 2a | 20 6d 61 74 63 68 69 6e |ndant. *| matchin|
|00000b20| 67 2e 20 42 61 73 69 63 | 61 6c 6c 79 2c 20 65 76 |g. Basic|ally, ev|
|00000b30| 65 72 79 20 61 73 63 69 | 69 20 63 68 61 72 61 63 |ery asci|i charac|
|00000b40| 74 65 72 20 6d 61 70 73 | 20 74 6f 20 69 74 73 65 |ter maps| to itse|
|00000b50| 6c 66 2c 20 65 78 63 65 | 70 74 0d 20 2a 20 75 70 |lf, exce|pt. * up|
|00000b60| 70 65 72 63 61 73 65 20 | 6c 65 74 74 65 72 73 20 |percase |letters |
|00000b70| 6d 61 70 20 74 6f 20 6c | 6f 77 65 72 20 63 61 73 |map to l|ower cas|
|00000b80| 65 20 6f 6e 65 73 2e 20 | 54 68 69 73 20 74 61 62 |e ones. |This tab|
|00000b90| 6c 65 20 68 61 73 20 32 | 35 36 0d 20 2a 20 65 6e |le has 2|56. * en|
|00000ba0| 74 72 69 65 73 2c 20 77 | 68 69 63 68 20 6d 61 79 |tries, w|hich may|
|00000bb0| 20 62 65 20 6f 76 65 72 | 6b 69 6c 6c 2e 20 4e 6f | be over|kill. No|
|00000bc0| 74 65 20 61 6c 73 6f 20 | 74 68 61 74 20 69 66 20 |te also |that if |
|00000bd0| 74 68 65 20 73 79 73 74 | 65 6d 20 74 68 69 73 0d |the syst|em this.|
|00000be0| 20 2a 20 69 73 20 63 6f | 6d 70 69 6c 65 64 20 6f | * is co|mpiled o|
|00000bf0| 6e 20 64 6f 65 73 6e 27 | 74 20 75 73 65 20 37 2d |n doesn'|t use 7-|
|00000c00| 62 69 74 20 61 73 63 69 | 69 2c 20 63 61 73 65 74 |bit asci|i, caset|
|00000c10| 61 62 6c 65 5b 5d 20 73 | 68 6f 75 6c 64 20 6e 6f |able[] s|hould no|
|00000c20| 74 20 62 65 0d 20 2a 20 | 64 65 66 69 6e 65 64 20 |t be. * |defined |
|00000c30| 74 6f 20 74 68 65 20 6c | 69 6e 6b 65 72 2c 20 73 |to the l|inker, s|
|00000c40| 6f 20 67 61 77 6b 20 73 | 68 6f 75 6c 64 20 6e 6f |o gawk s|hould no|
|00000c50| 74 20 6c 6f 61 64 2e 0d | 20 2a 0d 20 2a 20 44 6f |t load..| *. * Do|
|00000c60| 20 4e 4f 54 20 6d 61 6b | 65 20 74 68 69 73 20 61 | NOT mak|e this a|
|00000c70| 72 72 61 79 20 73 74 61 | 74 69 63 2c 20 69 74 20 |rray sta|tic, it |
|00000c80| 69 73 20 75 73 65 64 20 | 69 6e 20 73 65 76 65 72 |is used |in sever|
|00000c90| 61 6c 20 73 70 6f 74 73 | 2c 20 6e 6f 74 0d 20 2a |al spots|, not. *|
|00000ca0| 20 6a 75 73 74 20 69 6e | 20 74 68 69 73 20 66 69 | just in| this fi|
|00000cb0| 6c 65 2e 0d 20 2a 2f 0d | 23 69 66 20 27 61 27 20 |le.. */.|#if 'a' |
|00000cc0| 3d 3d 20 39 37 09 2f 2a | 20 69 74 27 73 20 61 73 |== 97./*| it's as|
|00000cd0| 63 69 69 20 2a 2f 0d 63 | 68 61 72 20 63 61 73 65 |cii */.c|har case|
|00000ce0| 74 61 62 6c 65 5b 5d 20 | 3d 20 7b 0d 09 27 5c 30 |table[] |= {..'\0|
|00000cf0| 30 30 27 2c 20 27 5c 30 | 30 31 27 2c 20 27 5c 30 |00', '\0|01', '\0|
|00000d00| 30 32 27 2c 20 27 5c 30 | 30 33 27 2c 20 27 5c 30 |02', '\0|03', '\0|
|00000d10| 30 34 27 2c 20 27 5c 30 | 30 35 27 2c 20 27 5c 30 |04', '\0|05', '\0|
|00000d20| 30 36 27 2c 20 27 5c 30 | 30 37 27 2c 0d 09 27 5c |06', '\0|07',..'\|
|00000d30| 30 31 30 27 2c 20 27 5c | 30 31 31 27 2c 20 27 5c |010', '\|011', '\|
|00000d40| 30 31 32 27 2c 20 27 5c | 30 31 33 27 2c 20 27 5c |012', '\|013', '\|
|00000d50| 30 31 34 27 2c 20 27 5c | 30 31 35 27 2c 20 27 5c |014', '\|015', '\|
|00000d60| 30 31 36 27 2c 20 27 5c | 30 31 37 27 2c 0d 09 27 |016', '\|017',..'|
|00000d70| 5c 30 32 30 27 2c 20 27 | 5c 30 32 31 27 2c 20 27 |\020', '|\021', '|
|00000d80| 5c 30 32 32 27 2c 20 27 | 5c 30 32 33 27 2c 20 27 |\022', '|\023', '|
|00000d90| 5c 30 32 34 27 2c 20 27 | 5c 30 32 35 27 2c 20 27 |\024', '|\025', '|
|00000da0| 5c 30 32 36 27 2c 20 27 | 5c 30 32 37 27 2c 0d 09 |\026', '|\027',..|
|00000db0| 27 5c 30 33 30 27 2c 20 | 27 5c 30 33 31 27 2c 20 |'\030', |'\031', |
|00000dc0| 27 5c 30 33 32 27 2c 20 | 27 5c 30 33 33 27 2c 20 |'\032', |'\033', |
|00000dd0| 27 5c 30 33 34 27 2c 20 | 27 5c 30 33 35 27 2c 20 |'\034', |'\035', |
|00000de0| 27 5c 30 33 36 27 2c 20 | 27 5c 30 33 37 27 2c 0d |'\036', |'\037',.|
|00000df0| 09 2f 2a 20 27 20 27 20 | 20 20 20 20 27 21 27 20 |./* ' ' | '!' |
|00000e00| 20 20 20 20 27 22 27 20 | 20 20 20 20 27 23 27 20 | '"' | '#' |
|00000e10| 20 20 20 20 27 24 27 20 | 20 20 20 20 27 25 27 20 | '$' | '%' |
|00000e20| 20 20 20 20 27 26 27 20 | 20 20 20 20 27 27 27 20 | '&' | ''' |
|00000e30| 2a 2f 0d 09 27 5c 30 34 | 30 27 2c 20 27 5c 30 34 |*/..'\04|0', '\04|
|00000e40| 31 27 2c 20 27 5c 30 34 | 32 27 2c 20 27 5c 30 34 |1', '\04|2', '\04|
|00000e50| 33 27 2c 20 27 5c 30 34 | 34 27 2c 20 27 5c 30 34 |3', '\04|4', '\04|
|00000e60| 35 27 2c 20 27 5c 30 34 | 36 27 2c 20 27 5c 30 34 |5', '\04|6', '\04|
|00000e70| 37 27 2c 0d 09 2f 2a 20 | 27 28 27 20 20 20 20 20 |7',../* |'(' |
|00000e80| 27 29 27 20 20 20 20 20 | 27 2a 27 20 20 20 20 20 |')' |'*' |
|00000e90| 27 2b 27 20 20 20 20 20 | 27 2c 27 20 20 20 20 20 |'+' |',' |
|00000ea0| 27 2d 27 20 20 20 20 20 | 27 2e 27 20 20 20 20 20 |'-' |'.' |
|00000eb0| 27 2f 27 20 2a 2f 0d 09 | 27 5c 30 35 30 27 2c 20 |'/' */..|'\050', |
|00000ec0| 27 5c 30 35 31 27 2c 20 | 27 5c 30 35 32 27 2c 20 |'\051', |'\052', |
|00000ed0| 27 5c 30 35 33 27 2c 20 | 27 5c 30 35 34 27 2c 20 |'\053', |'\054', |
|00000ee0| 27 5c 30 35 35 27 2c 20 | 27 5c 30 35 36 27 2c 20 |'\055', |'\056', |
|00000ef0| 27 5c 30 35 37 27 2c 0d | 09 2f 2a 20 27 30 27 20 |'\057',.|./* '0' |
|00000f00| 20 20 20 20 27 31 27 20 | 20 20 20 20 27 32 27 20 | '1' | '2' |
|00000f10| 20 20 20 20 27 33 27 20 | 20 20 20 20 27 34 27 20 | '3' | '4' |
|00000f20| 20 20 20 20 27 35 27 20 | 20 20 20 20 27 36 27 20 | '5' | '6' |
|00000f30| 20 20 20 20 27 37 27 20 | 2a 2f 0d 09 27 5c 30 36 | '7' |*/..'\06|
|00000f40| 30 27 2c 20 27 5c 30 36 | 31 27 2c 20 27 5c 30 36 |0', '\06|1', '\06|
|00000f50| 32 27 2c 20 27 5c 30 36 | 33 27 2c 20 27 5c 30 36 |2', '\06|3', '\06|
|00000f60| 34 27 2c 20 27 5c 30 36 | 35 27 2c 20 27 5c 30 36 |4', '\06|5', '\06|
|00000f70| 36 27 2c 20 27 5c 30 36 | 37 27 2c 0d 09 2f 2a 20 |6', '\06|7',../* |
|00000f80| 27 38 27 20 20 20 20 20 | 27 39 27 20 20 20 20 20 |'8' |'9' |
|00000f90| 27 3a 27 20 20 20 20 20 | 27 3b 27 20 20 20 20 20 |':' |';' |
|00000fa0| 27 3c 27 20 20 20 20 20 | 27 3d 27 20 20 20 20 20 |'<' |'=' |
|00000fb0| 27 3e 27 20 20 20 20 20 | 27 3f 27 20 2a 2f 0d 09 |'>' |'?' */..|
|00000fc0| 27 5c 30 37 30 27 2c 20 | 27 5c 30 37 31 27 2c 20 |'\070', |'\071', |
|00000fd0| 27 5c 30 37 32 27 2c 20 | 27 5c 30 37 33 27 2c 20 |'\072', |'\073', |
|00000fe0| 27 5c 30 37 34 27 2c 20 | 27 5c 30 37 35 27 2c 20 |'\074', |'\075', |
|00000ff0| 27 5c 30 37 36 27 2c 20 | 27 5c 30 37 37 27 2c 0d |'\076', |'\077',.|
|00001000| 09 2f 2a 20 27 40 27 20 | 20 20 20 20 27 41 27 20 |./* '@' | 'A' |
|00001010| 20 20 20 20 27 42 27 20 | 20 20 20 20 27 43 27 20 | 'B' | 'C' |
|00001020| 20 20 20 20 27 44 27 20 | 20 20 20 20 27 45 27 20 | 'D' | 'E' |
|00001030| 20 20 20 20 27 46 27 20 | 20 20 20 20 27 47 27 20 | 'F' | 'G' |
|00001040| 2a 2f 0d 09 27 5c 31 30 | 30 27 2c 20 27 5c 31 34 |*/..'\10|0', '\14|
|00001050| 31 27 2c 20 27 5c 31 34 | 32 27 2c 20 27 5c 31 34 |1', '\14|2', '\14|
|00001060| 33 27 2c 20 27 5c 31 34 | 34 27 2c 20 27 5c 31 34 |3', '\14|4', '\14|
|00001070| 35 27 2c 20 27 5c 31 34 | 36 27 2c 20 27 5c 31 34 |5', '\14|6', '\14|
|00001080| 37 27 2c 0d 09 2f 2a 20 | 27 48 27 20 20 20 20 20 |7',../* |'H' |
|00001090| 27 49 27 20 20 20 20 20 | 27 4a 27 20 20 20 20 20 |'I' |'J' |
|000010a0| 27 4b 27 20 20 20 20 20 | 27 4c 27 20 20 20 20 20 |'K' |'L' |
|000010b0| 27 4d 27 20 20 20 20 20 | 27 4e 27 20 20 20 20 20 |'M' |'N' |
|000010c0| 27 4f 27 20 2a 2f 0d 09 | 27 5c 31 35 30 27 2c 20 |'O' */..|'\150', |
|000010d0| 27 5c 31 35 31 27 2c 20 | 27 5c 31 35 32 27 2c 20 |'\151', |'\152', |
|000010e0| 27 5c 31 35 33 27 2c 20 | 27 5c 31 35 34 27 2c 20 |'\153', |'\154', |
|000010f0| 27 5c 31 35 35 27 2c 20 | 27 5c 31 35 36 27 2c 20 |'\155', |'\156', |
|00001100| 27 5c 31 35 37 27 2c 0d | 09 2f 2a 20 27 50 27 20 |'\157',.|./* 'P' |
|00001110| 20 20 20 20 27 51 27 20 | 20 20 20 20 27 52 27 20 | 'Q' | 'R' |
|00001120| 20 20 20 20 27 53 27 20 | 20 20 20 20 27 54 27 20 | 'S' | 'T' |
|00001130| 20 20 20 20 27 55 27 20 | 20 20 20 20 27 56 27 20 | 'U' | 'V' |
|00001140| 20 20 20 20 27 57 27 20 | 2a 2f 0d 09 27 5c 31 36 | 'W' |*/..'\16|
|00001150| 30 27 2c 20 27 5c 31 36 | 31 27 2c 20 27 5c 31 36 |0', '\16|1', '\16|
|00001160| 32 27 2c 20 27 5c 31 36 | 33 27 2c 20 27 5c 31 36 |2', '\16|3', '\16|
|00001170| 34 27 2c 20 27 5c 31 36 | 35 27 2c 20 27 5c 31 36 |4', '\16|5', '\16|
|00001180| 36 27 2c 20 27 5c 31 36 | 37 27 2c 0d 09 2f 2a 20 |6', '\16|7',../* |
|00001190| 27 58 27 20 20 20 20 20 | 27 59 27 20 20 20 20 20 |'X' |'Y' |
|000011a0| 27 5a 27 20 20 20 20 20 | 27 5b 27 20 20 20 20 20 |'Z' |'[' |
|000011b0| 27 5c 27 20 20 20 20 20 | 27 5d 27 20 20 20 20 20 |'\' |']' |
|000011c0| 27 5e 27 20 20 20 20 20 | 27 5f 27 20 2a 2f 0d 09 |'^' |'_' */..|
|000011d0| 27 5c 31 37 30 27 2c 20 | 27 5c 31 37 31 27 2c 20 |'\170', |'\171', |
|000011e0| 27 5c 31 37 32 27 2c 20 | 27 5c 31 33 33 27 2c 20 |'\172', |'\133', |
|000011f0| 27 5c 31 33 34 27 2c 20 | 27 5c 31 33 35 27 2c 20 |'\134', |'\135', |
|00001200| 27 5c 31 33 36 27 2c 20 | 27 5c 31 33 37 27 2c 0d |'\136', |'\137',.|
|00001210| 09 2f 2a 20 27 60 27 20 | 20 20 20 20 27 61 27 20 |./* '`' | 'a' |
|00001220| 20 20 20 20 27 62 27 20 | 20 20 20 20 27 63 27 20 | 'b' | 'c' |
|00001230| 20 20 20 20 27 64 27 20 | 20 20 20 20 27 65 27 20 | 'd' | 'e' |
|00001240| 20 20 20 20 27 66 27 20 | 20 20 20 20 27 67 27 20 | 'f' | 'g' |
|00001250| 2a 2f 0d 09 27 5c 31 34 | 30 27 2c 20 27 5c 31 34 |*/..'\14|0', '\14|
|00001260| 31 27 2c 20 27 5c 31 34 | 32 27 2c 20 27 5c 31 34 |1', '\14|2', '\14|
|00001270| 33 27 2c 20 27 5c 31 34 | 34 27 2c 20 27 5c 31 34 |3', '\14|4', '\14|
|00001280| 35 27 2c 20 27 5c 31 34 | 36 27 2c 20 27 5c 31 34 |5', '\14|6', '\14|
|00001290| 37 27 2c 0d 09 2f 2a 20 | 27 68 27 20 20 20 20 20 |7',../* |'h' |
|000012a0| 27 69 27 20 20 20 20 20 | 27 6a 27 20 20 20 20 20 |'i' |'j' |
|000012b0| 27 6b 27 20 20 20 20 20 | 27 6c 27 20 20 20 20 20 |'k' |'l' |
|000012c0| 27 6d 27 20 20 20 20 20 | 27 6e 27 20 20 20 20 20 |'m' |'n' |
|000012d0| 27 6f 27 20 2a 2f 0d 09 | 27 5c 31 35 30 27 2c 20 |'o' */..|'\150', |
|000012e0| 27 5c 31 35 31 27 2c 20 | 27 5c 31 35 32 27 2c 20 |'\151', |'\152', |
|000012f0| 27 5c 31 35 33 27 2c 20 | 27 5c 31 35 34 27 2c 20 |'\153', |'\154', |
|00001300| 27 5c 31 35 35 27 2c 20 | 27 5c 31 35 36 27 2c 20 |'\155', |'\156', |
|00001310| 27 5c 31 35 37 27 2c 0d | 09 2f 2a 20 27 70 27 20 |'\157',.|./* 'p' |
|00001320| 20 20 20 20 27 71 27 20 | 20 20 20 20 27 72 27 20 | 'q' | 'r' |
|00001330| 20 20 20 20 27 73 27 20 | 20 20 20 20 27 74 27 20 | 's' | 't' |
|00001340| 20 20 20 20 27 75 27 20 | 20 20 20 20 27 76 27 20 | 'u' | 'v' |
|00001350| 20 20 20 20 27 77 27 20 | 2a 2f 0d 09 27 5c 31 36 | 'w' |*/..'\16|
|00001360| 30 27 2c 20 27 5c 31 36 | 31 27 2c 20 27 5c 31 36 |0', '\16|1', '\16|
|00001370| 32 27 2c 20 27 5c 31 36 | 33 27 2c 20 27 5c 31 36 |2', '\16|3', '\16|
|00001380| 34 27 2c 20 27 5c 31 36 | 35 27 2c 20 27 5c 31 36 |4', '\16|5', '\16|
|00001390| 36 27 2c 20 27 5c 31 36 | 37 27 2c 0d 09 2f 2a 20 |6', '\16|7',../* |
|000013a0| 27 78 27 20 20 20 20 20 | 27 79 27 20 20 20 20 20 |'x' |'y' |
|000013b0| 27 7a 27 20 20 20 20 20 | 27 7b 27 20 20 20 20 20 |'z' |'{' |
|000013c0| 27 7c 27 20 20 20 20 20 | 27 7d 27 20 20 20 20 20 |'|' |'}' |
|000013d0| 27 7e 27 20 2a 2f 0d 09 | 27 5c 31 37 30 27 2c 20 |'~' */..|'\170', |
|000013e0| 27 5c 31 37 31 27 2c 20 | 27 5c 31 37 32 27 2c 20 |'\171', |'\172', |
|000013f0| 27 5c 31 37 33 27 2c 20 | 27 5c 31 37 34 27 2c 20 |'\173', |'\174', |
|00001400| 27 5c 31 37 35 27 2c 20 | 27 5c 31 37 36 27 2c 20 |'\175', |'\176', |
|00001410| 27 5c 31 37 37 27 2c 0d | 09 27 5c 32 30 30 27 2c |'\177',.|.'\200',|
|00001420| 20 27 5c 32 30 31 27 2c | 20 27 5c 32 30 32 27 2c | '\201',| '\202',|
|00001430| 20 27 5c 32 30 33 27 2c | 20 27 5c 32 30 34 27 2c | '\203',| '\204',|
|00001440| 20 27 5c 32 30 35 27 2c | 20 27 5c 32 30 36 27 2c | '\205',| '\206',|
|00001450| 20 27 5c 32 30 37 27 2c | 0d 09 27 5c 32 31 30 27 | '\207',|..'\210'|
|00001460| 2c 20 27 5c 32 31 31 27 | 2c 20 27 5c 32 31 32 27 |, '\211'|, '\212'|
|00001470| 2c 20 27 5c 32 31 33 27 | 2c 20 27 5c 32 31 34 27 |, '\213'|, '\214'|
|00001480| 2c 20 27 5c 32 31 35 27 | 2c 20 27 5c 32 31 36 27 |, '\215'|, '\216'|
|00001490| 2c 20 27 5c 32 31 37 27 | 2c 0d 09 27 5c 32 32 30 |, '\217'|,..'\220|
|000014a0| 27 2c 20 27 5c 32 32 31 | 27 2c 20 27 5c 32 32 32 |', '\221|', '\222|
|000014b0| 27 2c 20 27 5c 32 32 33 | 27 2c 20 27 5c 32 32 34 |', '\223|', '\224|
|000014c0| 27 2c 20 27 5c 32 32 35 | 27 2c 20 27 5c 32 32 36 |', '\225|', '\226|
|000014d0| 27 2c 20 27 5c 32 32 37 | 27 2c 0d 09 27 5c 32 33 |', '\227|',..'\23|
|000014e0| 30 27 2c 20 27 5c 32 33 | 31 27 2c 20 27 5c 32 33 |0', '\23|1', '\23|
|000014f0| 32 27 2c 20 27 5c 32 33 | 33 27 2c 20 27 5c 32 33 |2', '\23|3', '\23|
|00001500| 34 27 2c 20 27 5c 32 33 | 35 27 2c 20 27 5c 32 33 |4', '\23|5', '\23|
|00001510| 36 27 2c 20 27 5c 32 33 | 37 27 2c 0d 09 27 5c 32 |6', '\23|7',..'\2|
|00001520| 34 30 27 2c 20 27 5c 32 | 34 31 27 2c 20 27 5c 32 |40', '\2|41', '\2|
|00001530| 34 32 27 2c 20 27 5c 32 | 34 33 27 2c 20 27 5c 32 |42', '\2|43', '\2|
|00001540| 34 34 27 2c 20 27 5c 32 | 34 35 27 2c 20 27 5c 32 |44', '\2|45', '\2|
|00001550| 34 36 27 2c 20 27 5c 32 | 34 37 27 2c 0d 09 27 5c |46', '\2|47',..'\|
|00001560| 32 35 30 27 2c 20 27 5c | 32 35 31 27 2c 20 27 5c |250', '\|251', '\|
|00001570| 32 35 32 27 2c 20 27 5c | 32 35 33 27 2c 20 27 5c |252', '\|253', '\|
|00001580| 32 35 34 27 2c 20 27 5c | 32 35 35 27 2c 20 27 5c |254', '\|255', '\|
|00001590| 32 35 36 27 2c 20 27 5c | 32 35 37 27 2c 0d 09 27 |256', '\|257',..'|
|000015a0| 5c 32 36 30 27 2c 20 27 | 5c 32 36 31 27 2c 20 27 |\260', '|\261', '|
|000015b0| 5c 32 36 32 27 2c 20 27 | 5c 32 36 33 27 2c 20 27 |\262', '|\263', '|
|000015c0| 5c 32 36 34 27 2c 20 27 | 5c 32 36 35 27 2c 20 27 |\264', '|\265', '|
|000015d0| 5c 32 36 36 27 2c 20 27 | 5c 32 36 37 27 2c 0d 09 |\266', '|\267',..|
|000015e0| 27 5c 32 37 30 27 2c 20 | 27 5c 32 37 31 27 2c 20 |'\270', |'\271', |
|000015f0| 27 5c 32 37 32 27 2c 20 | 27 5c 32 37 33 27 2c 20 |'\272', |'\273', |
|00001600| 27 5c 32 37 34 27 2c 20 | 27 5c 32 37 35 27 2c 20 |'\274', |'\275', |
|00001610| 27 5c 32 37 36 27 2c 20 | 27 5c 32 37 37 27 2c 0d |'\276', |'\277',.|
|00001620| 09 27 5c 33 30 30 27 2c | 20 27 5c 33 30 31 27 2c |.'\300',| '\301',|
|00001630| 20 27 5c 33 30 32 27 2c | 20 27 5c 33 30 33 27 2c | '\302',| '\303',|
|00001640| 20 27 5c 33 30 34 27 2c | 20 27 5c 33 30 35 27 2c | '\304',| '\305',|
|00001650| 20 27 5c 33 30 36 27 2c | 20 27 5c 33 30 37 27 2c | '\306',| '\307',|
|00001660| 0d 09 27 5c 33 31 30 27 | 2c 20 27 5c 33 31 31 27 |..'\310'|, '\311'|
|00001670| 2c 20 27 5c 33 31 32 27 | 2c 20 27 5c 33 31 33 27 |, '\312'|, '\313'|
|00001680| 2c 20 27 5c 33 31 34 27 | 2c 20 27 5c 33 31 35 27 |, '\314'|, '\315'|
|00001690| 2c 20 27 5c 33 31 36 27 | 2c 20 27 5c 33 31 37 27 |, '\316'|, '\317'|
|000016a0| 2c 0d 09 27 5c 33 32 30 | 27 2c 20 27 5c 33 32 31 |,..'\320|', '\321|
|000016b0| 27 2c 20 27 5c 33 32 32 | 27 2c 20 27 5c 33 32 33 |', '\322|', '\323|
|000016c0| 27 2c 20 27 5c 33 32 34 | 27 2c 20 27 5c 33 32 35 |', '\324|', '\325|
|000016d0| 27 2c 20 27 5c 33 32 36 | 27 2c 20 27 5c 33 32 37 |', '\326|', '\327|
|000016e0| 27 2c 0d 09 27 5c 33 33 | 30 27 2c 20 27 5c 33 33 |',..'\33|0', '\33|
|000016f0| 31 27 2c 20 27 5c 33 33 | 32 27 2c 20 27 5c 33 33 |1', '\33|2', '\33|
|00001700| 33 27 2c 20 27 5c 33 33 | 34 27 2c 20 27 5c 33 33 |3', '\33|4', '\33|
|00001710| 35 27 2c 20 27 5c 33 33 | 36 27 2c 20 27 5c 33 33 |5', '\33|6', '\33|
|00001720| 37 27 2c 0d 09 27 5c 33 | 34 30 27 2c 20 27 5c 33 |7',..'\3|40', '\3|
|00001730| 34 31 27 2c 20 27 5c 33 | 34 32 27 2c 20 27 5c 33 |41', '\3|42', '\3|
|00001740| 34 33 27 2c 20 27 5c 33 | 34 34 27 2c 20 27 5c 33 |43', '\3|44', '\3|
|00001750| 34 35 27 2c 20 27 5c 33 | 34 36 27 2c 20 27 5c 33 |45', '\3|46', '\3|
|00001760| 34 37 27 2c 0d 09 27 5c | 33 35 30 27 2c 20 27 5c |47',..'\|350', '\|
|00001770| 33 35 31 27 2c 20 27 5c | 33 35 32 27 2c 20 27 5c |351', '\|352', '\|
|00001780| 33 35 33 27 2c 20 27 5c | 33 35 34 27 2c 20 27 5c |353', '\|354', '\|
|00001790| 33 35 35 27 2c 20 27 5c | 33 35 36 27 2c 20 27 5c |355', '\|356', '\|
|000017a0| 33 35 37 27 2c 0d 09 27 | 5c 33 36 30 27 2c 20 27 |357',..'|\360', '|
|000017b0| 5c 33 36 31 27 2c 20 27 | 5c 33 36 32 27 2c 20 27 |\361', '|\362', '|
|000017c0| 5c 33 36 33 27 2c 20 27 | 5c 33 36 34 27 2c 20 27 |\363', '|\364', '|
|000017d0| 5c 33 36 35 27 2c 20 27 | 5c 33 36 36 27 2c 20 27 |\365', '|\366', '|
|000017e0| 5c 33 36 37 27 2c 0d 09 | 27 5c 33 37 30 27 2c 20 |\367',..|'\370', |
|000017f0| 27 5c 33 37 31 27 2c 20 | 27 5c 33 37 32 27 2c 20 |'\371', |'\372', |
|00001800| 27 5c 33 37 33 27 2c 20 | 27 5c 33 37 34 27 2c 20 |'\373', |'\374', |
|00001810| 27 5c 33 37 35 27 2c 20 | 27 5c 33 37 36 27 2c 20 |'\375', |'\376', |
|00001820| 27 5c 33 37 37 27 2c 0d | 7d 3b 0d 23 65 6c 73 65 |'\377',.|};.#else|
|00001830| 0d 23 69 6e 63 6c 75 64 | 65 20 22 59 6f 75 20 6c |.#includ|e "You l|
|00001840| 6f 73 65 2e 20 59 6f 75 | 20 77 69 6c 6c 20 6e 65 |ose. You| will ne|
|00001850| 65 64 20 61 20 74 72 61 | 6e 73 6c 61 74 69 6f 6e |ed a tra|nslation|
|00001860| 20 74 61 62 6c 65 20 66 | 6f 72 20 79 6f 75 72 20 | table f|or your |
|00001870| 63 68 61 72 61 63 74 65 | 72 20 73 65 74 2e 22 0d |characte|r set.".|
|00001880| 23 65 6e 64 69 66 0d 0d | 2f 2a 0d 20 2a 20 54 72 |#endif..|/*. * Tr|
|00001890| 65 65 20 69 73 20 61 20 | 62 75 6e 63 68 20 6f 66 |ee is a |bunch of|
|000018a0| 20 72 75 6c 65 73 20 74 | 6f 20 72 75 6e 2e 20 52 | rules t|o run. R|
|000018b0| 65 74 75 72 6e 73 20 7a | 65 72 6f 20 69 66 20 69 |eturns z|ero if i|
|000018c0| 74 20 68 69 74 20 61 6e | 20 65 78 69 74 28 29 0d |t hit an| exit().|
|000018d0| 20 2a 20 73 74 61 74 65 | 6d 65 6e 74 20 0d 20 2a | * state|ment . *|
|000018e0| 2f 0d 73 74 61 74 69 63 | 20 6a 6d 70 5f 62 75 66 |/.static| jmp_buf|
|000018f0| 20 72 75 6c 65 5f 74 61 | 67 3b 2f 2a 20 74 61 67 | rule_ta|g;/* tag|
|00001900| 20 74 68 65 20 72 75 6c | 65 20 63 75 72 72 65 6e | the rul|e curren|
|00001910| 74 6c 79 20 62 65 69 6e | 67 20 72 75 6e 2c 20 66 |tly bein|g run, f|
|00001920| 6f 72 20 4e 45 58 54 0d | 09 09 09 20 2a 20 61 6e |or NEXT.|... * an|
|00001930| 64 20 45 58 49 54 20 73 | 74 61 74 65 6d 65 6e 74 |d EXIT s|tatement|
|00001940| 73 2e 20 20 49 74 20 69 | 73 20 73 74 61 74 69 63 |s. It i|s static|
|00001950| 20 62 65 63 61 75 73 65 | 0d 09 09 09 20 2a 20 74 | because|.... * t|
|00001960| 68 65 72 65 20 61 72 65 | 20 6e 6f 20 6e 65 73 74 |here are| no nest|
|00001970| 65 64 20 72 75 6c 65 73 | 20 2a 2f 0d 73 68 6f 72 |ed rules| */.shor|
|00001980| 74 20 69 6e 74 65 72 70 | 72 65 74 28 4e 4f 44 45 |t interp|ret(NODE|
|00001990| 20 2a 74 72 65 65 29 0d | 7b 0d 09 76 6f 6c 61 74 | *tree).|{..volat|
|000019a0| 69 6c 65 20 6a 6d 70 5f | 62 75 66 20 6c 6f 6f 70 |ile jmp_|buf loop|
|000019b0| 5f 74 61 67 5f 73 74 61 | 63 6b 3b 20 2f 2a 20 73 |_tag_sta|ck; /* s|
|000019c0| 68 61 6c 6c 6f 77 20 62 | 69 6e 64 69 6e 67 20 73 |hallow b|inding s|
|000019d0| 74 61 63 6b 20 66 6f 72 | 20 6c 6f 6f 70 5f 74 61 |tack for| loop_ta|
|000019e0| 67 20 2a 2f 0d 09 0d 09 | 72 65 67 69 73 74 65 72 |g */....|register|
|000019f0| 20 4e 4f 44 45 20 2a 74 | 20 3d 20 4e 55 4c 4c 3b | NODE *t| = NULL;|
|00001a00| 2f 2a 20 74 65 6d 70 6f | 72 61 72 79 20 2a 2f 0d |/* tempo|rary */.|
|00001a10| 09 76 6f 6c 61 74 69 6c | 65 20 4e 4f 44 45 20 2a |.volatil|e NODE *|
|00001a20| 2a 6c 68 73 3b 09 2f 2a | 20 6c 68 73 20 3d 3d 20 |*lhs;./*| lhs == |
|00001a30| 4c 65 66 74 20 48 61 6e | 64 20 53 69 64 65 20 66 |Left Han|d Side f|
|00001a40| 6f 72 20 61 73 73 69 67 | 6e 73 2c 20 65 74 63 20 |or assig|ns, etc |
|00001a50| 2a 2f 0d 09 76 6f 6c 61 | 74 69 6c 65 20 73 74 72 |*/..vola|tile str|
|00001a60| 75 63 74 20 73 65 61 72 | 63 68 20 2a 6c 3b 09 2f |uct sear|ch *l;./|
|00001a70| 2a 20 46 6f 72 20 61 72 | 72 61 79 5f 66 6f 72 20 |* For ar|ray_for |
|00001a80| 2a 2f 0d 09 76 6f 6c 61 | 74 69 6c 65 20 4e 4f 44 |*/..vola|tile NOD|
|00001a90| 45 20 2a 73 74 61 62 6c | 65 5f 74 72 65 65 3b 0d |E *stabl|e_tree;.|
|00001aa0| 09 65 78 74 65 72 6e 20 | 42 6f 6f 6c 65 61 6e 20 |.extern |Boolean |
|00001ab0| 67 43 6f 6e 63 75 72 72 | 65 6e 74 3b 0d 09 0d 09 |gConcurr|ent;....|
|00001ac0| 0d 09 69 66 20 28 67 43 | 6f 6e 63 75 72 72 65 6e |..if (gC|oncurren|
|00001ad0| 74 29 0d 09 09 7b 0d 09 | 09 69 66 20 28 43 68 65 |t)...{..|.if (Che|
|00001ae0| 63 6b 49 6e 57 69 74 68 | 43 61 6c 6c 69 6e 67 41 |ckInWith|CallingA|
|00001af0| 70 70 28 29 29 20 20 2f | 2a 20 43 6f 64 65 52 65 |pp()) /|* CodeRe|
|00001b00| 73 6f 75 72 63 65 5f 48 | 65 6c 70 65 72 2e 63 20 |source_H|elper.c |
|00001b10| 2a 2f 0d 09 09 09 4a 75 | 6d 70 4f 6e 48 41 57 4b |*/....Ju|mpOnHAWK|
|00001b20| 45 72 72 6f 72 28 39 39 | 39 29 3b 0d 09 09 7d 0d |Error(99|9);...}.|
|00001b30| 09 65 6c 73 65 0d 09 09 | 43 68 65 63 6b 46 6f 72 |.else...|CheckFor|
|00001b40| 49 6e 74 65 72 72 75 70 | 74 28 29 3b 0d 09 0d 09 |Interrup|t();....|
|00001b50| 69 66 20 28 74 72 65 65 | 20 3d 3d 20 4e 55 4c 4c |if (tree| == NULL|
|00001b60| 29 0d 09 09 72 65 74 75 | 72 6e 20 31 3b 0d 09 0d |)...retu|rn 1;...|
|00001b70| 09 73 6f 75 72 63 65 6c | 69 6e 65 20 3d 20 74 72 |.sourcel|ine = tr|
|00001b80| 65 65 2d 3e 73 6f 75 72 | 63 65 5f 6c 69 6e 65 3b |ee->sour|ce_line;|
|00001b90| 0d 09 73 6f 75 72 63 65 | 20 3d 20 74 72 65 65 2d |..source| = tree-|
|00001ba0| 3e 73 6f 75 72 63 65 5f | 66 69 6c 65 3b 0d 09 73 |>source_|file;..s|
|00001bb0| 77 69 74 63 68 20 28 74 | 72 65 65 2d 3e 74 79 70 |witch (t|ree->typ|
|00001bc0| 65 29 20 7b 0d 09 63 61 | 73 65 20 4e 6f 64 65 5f |e) {..ca|se Node_|
|00001bd0| 72 75 6c 65 5f 6c 69 73 | 74 3a 0d 09 09 66 6f 72 |rule_lis|t:...for|
|00001be0| 20 28 74 20 3d 20 74 72 | 65 65 3b 20 74 20 21 3d | (t = tr|ee; t !=|
|00001bf0| 20 4e 55 4c 4c 3b 20 74 | 20 3d 20 74 2d 3e 72 6e | NULL; t| = t->rn|
|00001c00| 6f 64 65 29 20 7b 0d 09 | 09 09 74 72 65 65 20 3d |ode) {..|..tree =|
|00001c10| 20 74 2d 3e 6c 6e 6f 64 | 65 3b 0d 09 09 2f 2a 20 | t->lnod|e;.../* |
|00001c20| 46 41 4c 4c 20 54 48 52 | 4f 55 47 48 20 2a 2f 0d |FALL THR|OUGH */.|
|00001c30| 09 63 61 73 65 20 4e 6f | 64 65 5f 72 75 6c 65 5f |.case No|de_rule_|
|00001c40| 6e 6f 64 65 3a 0d 09 09 | 09 73 6f 75 72 63 65 6c |node:...|.sourcel|
|00001c50| 69 6e 65 20 3d 20 74 72 | 65 65 2d 3e 73 6f 75 72 |ine = tr|ee->sour|
|00001c60| 63 65 5f 6c 69 6e 65 3b | 0d 09 09 09 73 6f 75 72 |ce_line;|....sour|
|00001c70| 63 65 20 3d 20 74 72 65 | 65 2d 3e 73 6f 75 72 63 |ce = tre|e->sourc|
|00001c80| 65 5f 66 69 6c 65 3b 0d | 09 09 09 73 77 69 74 63 |e_file;.|...switc|
|00001c90| 68 20 28 73 65 74 6a 6d | 70 28 72 75 6c 65 5f 74 |h (setjm|p(rule_t|
|00001ca0| 61 67 29 29 20 7b 0d 09 | 09 09 63 61 73 65 20 30 |ag)) {..|..case 0|
|00001cb0| 3a 09 2f 2a 20 6e 6f 72 | 6d 61 6c 20 6e 6f 6e 2d |:./* nor|mal non-|
|00001cc0| 6a 75 6d 70 20 2a 2f 0d | 09 09 09 09 2f 2a 20 74 |jump */.|..../* t|
|00001cd0| 65 73 74 20 70 61 74 74 | 65 72 6e 2c 20 69 66 20 |est patt|ern, if |
|00001ce0| 61 6e 79 20 2a 2f 0d 09 | 09 09 09 69 66 20 28 74 |any */..|...if (t|
|00001cf0| 72 65 65 2d 3e 6c 6e 6f | 64 65 20 3d 3d 20 4e 55 |ree->lno|de == NU|
|00001d00| 4c 4c 20 0d 09 09 09 09 | 20 20 20 20 7c 7c 20 65 |LL .....| || e|
|00001d10| 76 61 6c 5f 63 6f 6e 64 | 69 74 69 6f 6e 28 74 72 |val_cond|ition(tr|
|00001d20| 65 65 2d 3e 6c 6e 6f 64 | 65 29 29 20 7b 0d 09 09 |ee->lnod|e)) {...|
|00001d30| 09 09 09 44 42 47 5f 50 | 28 28 22 46 6f 75 6e 64 |...DBG_P|(("Found|
|00001d40| 20 61 20 72 75 6c 65 22 | 2c 20 74 72 65 65 2d 3e | a rule"|, tree->|
|00001d50| 72 6e 6f 64 65 29 29 3b | 0d 09 09 09 09 09 69 66 |rnode));|......if|
|00001d60| 20 28 74 72 65 65 2d 3e | 72 6e 6f 64 65 20 3d 3d | (tree->|rnode ==|
|00001d70| 20 4e 55 4c 4c 29 20 7b | 0d 09 09 09 09 09 09 2f | NULL) {|......./|
|00001d80| 2a 0d 09 09 09 09 09 09 | 20 2a 20 73 70 65 63 69 |*.......| * speci|
|00001d90| 61 6c 20 63 61 73 65 3a | 20 70 61 74 74 65 72 6e |al case:| pattern|
|00001da0| 20 77 69 74 68 0d 09 09 | 09 09 09 09 20 2a 20 6e | with...|.... * n|
|00001db0| 6f 20 61 63 74 69 6f 6e | 20 69 73 20 65 71 75 69 |o action| is equi|
|00001dc0| 76 61 6c 65 6e 74 20 74 | 6f 0d 09 09 09 09 09 09 |valent t|o.......|
|00001dd0| 20 2a 20 61 6e 20 61 63 | 74 69 6f 6e 20 6f 66 20 | * an ac|tion of |
|00001de0| 7b 70 72 69 6e 74 7d 0d | 09 09 09 09 09 09 20 2a |{print}.|...... *|
|00001df0| 2f 0d 09 09 09 09 09 09 | 4e 4f 44 45 20 70 72 69 |/.......|NODE pri|
|00001e00| 6e 74 6e 6f 64 65 3b 0d | 0d 09 09 09 09 09 09 70 |ntnode;.|.......p|
|00001e10| 72 69 6e 74 6e 6f 64 65 | 2e 74 79 70 65 20 3d 20 |rintnode|.type = |
|00001e20| 4e 6f 64 65 5f 4b 5f 70 | 72 69 6e 74 3b 0d 09 09 |Node_K_p|rint;...|
|00001e30| 09 09 09 09 70 72 69 6e | 74 6e 6f 64 65 2e 6c 6e |....prin|tnode.ln|
|00001e40| 6f 64 65 20 3d 20 4e 55 | 4c 4c 3b 0d 09 09 09 09 |ode = NU|LL;.....|
|00001e50| 09 09 70 72 69 6e 74 6e | 6f 64 65 2e 72 6e 6f 64 |..printn|ode.rnod|
|00001e60| 65 20 3d 20 4e 55 4c 4c | 3b 0d 09 09 09 09 09 09 |e = NULL|;.......|
|00001e70| 64 6f 5f 70 72 69 6e 74 | 28 26 70 72 69 6e 74 6e |do_print|(&printn|
|00001e80| 6f 64 65 29 3b 0d 09 09 | 09 09 09 7d 20 65 6c 73 |ode);...|...} els|
|00001e90| 65 20 69 66 20 28 74 72 | 65 65 2d 3e 72 6e 6f 64 |e if (tr|ee->rnod|
|00001ea0| 65 2d 3e 74 79 70 65 20 | 3d 3d 20 4e 6f 64 65 5f |e->type |== Node_|
|00001eb0| 69 6c 6c 65 67 61 6c 29 | 20 7b 0d 09 09 09 09 09 |illegal)| {......|
|00001ec0| 09 2f 2a 0d 09 09 09 09 | 09 09 20 2a 20 41 6e 20 |./*.....|.. * An |
|00001ed0| 65 6d 70 74 79 20 73 74 | 61 74 65 6d 65 6e 74 0d |empty st|atement.|
|00001ee0| 09 09 09 09 09 09 20 2a | 20 28 60 60 7b 20 7d 27 |...... *| (``{ }'|
|00001ef0| 27 29 20 69 73 20 64 69 | 66 66 65 72 65 6e 74 0d |') is di|fferent.|
|00001f00| 09 09 09 09 09 09 20 2a | 20 66 72 6f 6d 20 61 20 |...... *| from a |
|00001f10| 6d 69 73 73 69 6e 67 20 | 73 74 61 74 65 6d 65 6e |missing |statemen|
|00001f20| 74 2e 0d 09 09 09 09 09 | 09 20 2a 20 41 20 6d 69 |t.......|. * A mi|
|00001f30| 73 73 69 6e 67 20 73 74 | 61 74 65 6d 65 6e 74 20 |ssing st|atement |
|00001f40| 69 73 0d 09 09 09 09 09 | 09 20 2a 20 65 71 75 61 |is......|. * equa|
|00001f50| 6c 20 74 6f 20 60 60 7b | 20 70 72 69 6e 74 20 7d |l to ``{| print }|
|00001f60| 27 27 20 61 73 0d 09 09 | 09 09 09 09 20 2a 20 61 |'' as...|.... * a|
|00001f70| 62 6f 76 65 2c 20 62 75 | 74 20 61 6e 20 65 6d 70 |bove, bu|t an emp|
|00001f80| 74 79 0d 09 09 09 09 09 | 09 20 2a 20 73 74 61 74 |ty......|. * stat|
|00001f90| 65 6d 65 6e 74 20 69 73 | 20 61 73 20 69 6e 20 43 |ement is| as in C|
|00001fa0| 2c 20 64 6f 0d 09 09 09 | 09 09 09 20 2a 20 6e 6f |, do....|... * no|
|00001fb0| 74 68 69 6e 67 2e 0d 09 | 09 09 09 09 09 20 2a 2f |thing...|..... */|
|00001fc0| 0d 09 09 09 09 09 7d 20 | 65 6c 73 65 0d 09 09 09 |......} |else....|
|00001fd0| 09 09 09 28 76 6f 69 64 | 29 20 69 6e 74 65 72 70 |...(void|) interp|
|00001fe0| 72 65 74 28 74 72 65 65 | 2d 3e 72 6e 6f 64 65 29 |ret(tree|->rnode)|
|00001ff0| 3b 0d 09 09 09 09 7d 0d | 09 09 09 09 62 72 65 61 |;.....}.|....brea|
|00002000| 6b 3b 0d 09 09 09 63 61 | 73 65 20 54 41 47 5f 43 |k;....ca|se TAG_C|
|00002010| 4f 4e 54 49 4e 55 45 3a | 09 2f 2a 20 4e 45 58 54 |ONTINUE:|./* NEXT|
|00002020| 20 73 74 61 74 65 6d 65 | 6e 74 20 2a 2f 0d 09 09 | stateme|nt */...|
|00002030| 09 09 72 65 74 75 72 6e | 20 31 3b 0d 09 09 09 63 |..return| 1;....c|
|00002040| 61 73 65 20 54 41 47 5f | 42 52 45 41 4b 3a 0d 09 |ase TAG_|BREAK:..|
|00002050| 09 09 09 72 65 74 75 72 | 6e 20 30 3b 0d 09 09 09 |...retur|n 0;....|
|00002060| 64 65 66 61 75 6c 74 3a | 0d 09 09 09 09 63 61 6e |default:|.....can|
|00002070| 74 5f 68 61 70 70 65 6e | 28 29 3b 0d 09 09 09 7d |t_happen|();....}|
|00002080| 0d 09 09 09 69 66 20 28 | 74 20 3d 3d 20 4e 55 4c |....if (|t == NUL|
|00002090| 4c 29 0d 09 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |L).....b|reak;...|
|000020a0| 7d 0d 09 09 62 72 65 61 | 6b 3b 0d 0d 09 63 61 73 |}...brea|k;...cas|
|000020b0| 65 20 4e 6f 64 65 5f 73 | 74 61 74 65 6d 65 6e 74 |e Node_s|tatement|
|000020c0| 5f 6c 69 73 74 3a 0d 09 | 09 66 6f 72 20 28 74 20 |_list:..|.for (t |
|000020d0| 3d 20 74 72 65 65 3b 20 | 74 20 21 3d 20 4e 55 4c |= tree; |t != NUL|
|000020e0| 4c 3b 20 74 20 3d 20 74 | 2d 3e 72 6e 6f 64 65 29 |L; t = t|->rnode)|
|000020f0| 20 7b 0d 09 09 09 44 42 | 47 5f 50 28 28 22 53 74 | {....DB|G_P(("St|
|00002100| 61 74 65 6d 65 6e 74 73 | 22 2c 20 74 2d 3e 6c 6e |atements|", t->ln|
|00002110| 6f 64 65 29 29 3b 0d 09 | 09 09 28 76 6f 69 64 29 |ode));..|..(void)|
|00002120| 20 69 6e 74 65 72 70 72 | 65 74 28 74 2d 3e 6c 6e | interpr|et(t->ln|
|00002130| 6f 64 65 29 3b 0d 09 09 | 7d 0d 09 09 62 72 65 61 |ode);...|}...brea|
|00002140| 6b 3b 0d 0d 09 63 61 73 | 65 20 4e 6f 64 65 5f 4b |k;...cas|e Node_K|
|00002150| 5f 69 66 3a 0d 09 09 44 | 42 47 5f 50 28 28 22 49 |_if:...D|BG_P(("I|
|00002160| 46 22 2c 20 74 72 65 65 | 2d 3e 6c 6e 6f 64 65 29 |F", tree|->lnode)|
|00002170| 29 3b 0d 09 09 69 66 20 | 28 65 76 61 6c 5f 63 6f |);...if |(eval_co|
|00002180| 6e 64 69 74 69 6f 6e 28 | 74 72 65 65 2d 3e 6c 6e |ndition(|tree->ln|
|00002190| 6f 64 65 29 29 20 7b 0d | 09 09 09 44 42 47 5f 50 |ode)) {.|...DBG_P|
|000021a0| 28 28 22 54 72 75 65 22 | 2c 20 74 72 65 65 2d 3e |(("True"|, tree->|
|000021b0| 72 6e 6f 64 65 2d 3e 6c | 6e 6f 64 65 29 29 3b 0d |rnode->l|node));.|
|000021c0| 09 09 09 28 76 6f 69 64 | 29 20 69 6e 74 65 72 70 |...(void|) interp|
|000021d0| 72 65 74 28 74 72 65 65 | 2d 3e 72 6e 6f 64 65 2d |ret(tree|->rnode-|
|000021e0| 3e 6c 6e 6f 64 65 29 3b | 0d 09 09 7d 20 65 6c 73 |>lnode);|...} els|
|000021f0| 65 20 7b 0d 09 09 09 44 | 42 47 5f 50 28 28 22 46 |e {....D|BG_P(("F|
|00002200| 61 6c 73 65 22 2c 20 74 | 72 65 65 2d 3e 72 6e 6f |alse", t|ree->rno|
|00002210| 64 65 2d 3e 72 6e 6f 64 | 65 29 29 3b 0d 09 09 09 |de->rnod|e));....|
|00002220| 28 76 6f 69 64 29 20 69 | 6e 74 65 72 70 72 65 74 |(void) i|nterpret|
|00002230| 28 74 72 65 65 2d 3e 72 | 6e 6f 64 65 2d 3e 72 6e |(tree->r|node->rn|
|00002240| 6f 64 65 29 3b 0d 09 09 | 7d 0d 09 09 62 72 65 61 |ode);...|}...brea|
|00002250| 6b 3b 0d 0d 09 63 61 73 | 65 20 4e 6f 64 65 5f 4b |k;...cas|e Node_K|
|00002260| 5f 77 68 69 6c 65 3a 0d | 09 09 50 55 53 48 5f 42 |_while:.|..PUSH_B|
|00002270| 49 4e 44 49 4e 47 28 6c | 6f 6f 70 5f 74 61 67 5f |INDING(l|oop_tag_|
|00002280| 73 74 61 63 6b 2c 20 6c | 6f 6f 70 5f 74 61 67 2c |stack, l|oop_tag,|
|00002290| 20 6c 6f 6f 70 5f 74 61 | 67 5f 76 61 6c 69 64 29 | loop_ta|g_valid)|
|000022a0| 3b 0d 0d 09 09 44 42 47 | 5f 50 28 28 22 57 48 49 |;....DBG|_P(("WHI|
|000022b0| 4c 45 22 2c 20 74 72 65 | 65 2d 3e 6c 6e 6f 64 65 |LE", tre|e->lnode|
|000022c0| 29 29 3b 0d 09 09 73 74 | 61 62 6c 65 5f 74 72 65 |));...st|able_tre|
|000022d0| 65 20 3d 20 74 72 65 65 | 3b 0d 09 09 77 68 69 6c |e = tree|;...whil|
|000022e0| 65 20 28 65 76 61 6c 5f | 63 6f 6e 64 69 74 69 6f |e (eval_|conditio|
|000022f0| 6e 28 73 74 61 62 6c 65 | 5f 74 72 65 65 2d 3e 6c |n(stable|_tree->l|
|00002300| 6e 6f 64 65 29 29 20 7b | 0d 09 09 09 73 77 69 74 |node)) {|....swit|
|00002310| 63 68 20 28 73 65 74 6a | 6d 70 28 6c 6f 6f 70 5f |ch (setj|mp(loop_|
|00002320| 74 61 67 29 29 20 7b 0d | 09 09 09 63 61 73 65 20 |tag)) {.|...case |
|00002330| 30 3a 09 2f 2a 20 6e 6f | 72 6d 61 6c 20 6e 6f 6e |0:./* no|rmal non|
|00002340| 2d 6a 75 6d 70 20 2a 2f | 0d 09 09 09 09 44 42 47 |-jump */|.....DBG|
|00002350| 5f 50 28 28 22 44 4f 22 | 2c 20 73 74 61 62 6c 65 |_P(("DO"|, stable|
|00002360| 5f 74 72 65 65 2d 3e 72 | 6e 6f 64 65 29 29 3b 0d |_tree->r|node));.|
|00002370| 09 09 09 09 28 76 6f 69 | 64 29 20 69 6e 74 65 72 |....(voi|d) inter|
|00002380| 70 72 65 74 28 73 74 61 | 62 6c 65 5f 74 72 65 65 |pret(sta|ble_tree|
|00002390| 2d 3e 72 6e 6f 64 65 29 | 3b 0d 09 09 09 09 62 72 |->rnode)|;.....br|
|000023a0| 65 61 6b 3b 0d 09 09 09 | 63 61 73 65 20 54 41 47 |eak;....|case TAG|
|000023b0| 5f 43 4f 4e 54 49 4e 55 | 45 3a 09 2f 2a 20 63 6f |_CONTINU|E:./* co|
|000023c0| 6e 74 69 6e 75 65 20 73 | 74 61 74 65 6d 65 6e 74 |ntinue s|tatement|
|000023d0| 20 2a 2f 0d 09 09 09 09 | 62 72 65 61 6b 3b 0d 09 | */.....|break;..|
|000023e0| 09 09 63 61 73 65 20 54 | 41 47 5f 42 52 45 41 4b |..case T|AG_BREAK|
|000023f0| 3a 09 2f 2a 20 62 72 65 | 61 6b 20 73 74 61 74 65 |:./* bre|ak state|
|00002400| 6d 65 6e 74 20 2a 2f 0d | 09 09 09 09 52 45 53 54 |ment */.|....REST|
|00002410| 4f 52 45 5f 42 49 4e 44 | 49 4e 47 28 6c 6f 6f 70 |ORE_BIND|ING(loop|
|00002420| 5f 74 61 67 5f 73 74 61 | 63 6b 2c 20 6c 6f 6f 70 |_tag_sta|ck, loop|
|00002430| 5f 74 61 67 2c 20 6c 6f | 6f 70 5f 74 61 67 5f 76 |_tag, lo|op_tag_v|
|00002440| 61 6c 69 64 29 3b 0d 09 | 09 09 09 72 65 74 75 72 |alid);..|...retur|
|00002450| 6e 20 31 3b 0d 09 09 09 | 64 65 66 61 75 6c 74 3a |n 1;....|default:|
|00002460| 0d 09 09 09 09 63 61 6e | 74 5f 68 61 70 70 65 6e |.....can|t_happen|
|00002470| 28 29 3b 0d 09 09 09 7d | 0d 09 09 7d 0d 09 09 52 |();....}|...}...R|
|00002480| 45 53 54 4f 52 45 5f 42 | 49 4e 44 49 4e 47 28 6c |ESTORE_B|INDING(l|
|00002490| 6f 6f 70 5f 74 61 67 5f | 73 74 61 63 6b 2c 20 6c |oop_tag_|stack, l|
|000024a0| 6f 6f 70 5f 74 61 67 2c | 20 6c 6f 6f 70 5f 74 61 |oop_tag,| loop_ta|
|000024b0| 67 5f 76 61 6c 69 64 29 | 3b 0d 09 09 62 72 65 61 |g_valid)|;...brea|
|000024c0| 6b 3b 0d 0d 09 63 61 73 | 65 20 4e 6f 64 65 5f 4b |k;...cas|e Node_K|
|000024d0| 5f 64 6f 3a 0d 09 09 50 | 55 53 48 5f 42 49 4e 44 |_do:...P|USH_BIND|
|000024e0| 49 4e 47 28 6c 6f 6f 70 | 5f 74 61 67 5f 73 74 61 |ING(loop|_tag_sta|
|000024f0| 63 6b 2c 20 6c 6f 6f 70 | 5f 74 61 67 2c 20 6c 6f |ck, loop|_tag, lo|
|00002500| 6f 70 5f 74 61 67 5f 76 | 61 6c 69 64 29 3b 0d 09 |op_tag_v|alid);..|
|00002510| 09 73 74 61 62 6c 65 5f | 74 72 65 65 20 3d 20 74 |.stable_|tree = t|
|00002520| 72 65 65 3b 0d 09 09 64 | 6f 20 7b 0d 09 09 09 73 |ree;...d|o {....s|
|00002530| 77 69 74 63 68 20 28 73 | 65 74 6a 6d 70 28 6c 6f |witch (s|etjmp(lo|
|00002540| 6f 70 5f 74 61 67 29 29 | 20 7b 0d 09 09 09 63 61 |op_tag))| {....ca|
|00002550| 73 65 20 30 3a 09 2f 2a | 20 6e 6f 72 6d 61 6c 20 |se 0:./*| normal |
|00002560| 6e 6f 6e 2d 6a 75 6d 70 | 20 2a 2f 0d 09 09 09 09 |non-jump| */.....|
|00002570| 44 42 47 5f 50 28 28 22 | 44 4f 22 2c 20 73 74 61 |DBG_P(("|DO", sta|
|00002580| 62 6c 65 5f 74 72 65 65 | 2d 3e 72 6e 6f 64 65 29 |ble_tree|->rnode)|
|00002590| 29 3b 0d 09 09 09 09 28 | 76 6f 69 64 29 20 69 6e |);.....(|void) in|
|000025a0| 74 65 72 70 72 65 74 28 | 73 74 61 62 6c 65 5f 74 |terpret(|stable_t|
|000025b0| 72 65 65 2d 3e 72 6e 6f | 64 65 29 3b 0d 09 09 09 |ree->rno|de);....|
|000025c0| 09 62 72 65 61 6b 3b 0d | 09 09 09 63 61 73 65 20 |.break;.|...case |
|000025d0| 54 41 47 5f 43 4f 4e 54 | 49 4e 55 45 3a 09 2f 2a |TAG_CONT|INUE:./*|
|000025e0| 20 63 6f 6e 74 69 6e 75 | 65 20 73 74 61 74 65 6d | continu|e statem|
|000025f0| 65 6e 74 20 2a 2f 0d 09 | 09 09 09 62 72 65 61 6b |ent */..|...break|
|00002600| 3b 0d 09 09 09 63 61 73 | 65 20 54 41 47 5f 42 52 |;....cas|e TAG_BR|
|00002610| 45 41 4b 3a 09 2f 2a 20 | 62 72 65 61 6b 20 73 74 |EAK:./* |break st|
|00002620| 61 74 65 6d 65 6e 74 20 | 2a 2f 0d 09 09 09 09 52 |atement |*/.....R|
|00002630| 45 53 54 4f 52 45 5f 42 | 49 4e 44 49 4e 47 28 6c |ESTORE_B|INDING(l|
|00002640| 6f 6f 70 5f 74 61 67 5f | 73 74 61 63 6b 2c 20 6c |oop_tag_|stack, l|
|00002650| 6f 6f 70 5f 74 61 67 2c | 20 6c 6f 6f 70 5f 74 61 |oop_tag,| loop_ta|
|00002660| 67 5f 76 61 6c 69 64 29 | 3b 0d 09 09 09 09 72 65 |g_valid)|;.....re|
|00002670| 74 75 72 6e 20 31 3b 0d | 09 09 09 64 65 66 61 75 |turn 1;.|...defau|
|00002680| 6c 74 3a 0d 09 09 09 09 | 63 61 6e 74 5f 68 61 70 |lt:.....|cant_hap|
|00002690| 70 65 6e 28 29 3b 0d 09 | 09 09 7d 0d 09 09 09 44 |pen();..|..}....D|
|000026a0| 42 47 5f 50 28 28 22 57 | 48 49 4c 45 22 2c 20 73 |BG_P(("W|HILE", s|
|000026b0| 74 61 62 6c 65 5f 74 72 | 65 65 2d 3e 6c 6e 6f 64 |table_tr|ee->lnod|
|000026c0| 65 29 29 3b 0d 09 09 7d | 20 77 68 69 6c 65 20 28 |e));...}| while (|
|000026d0| 65 76 61 6c 5f 63 6f 6e | 64 69 74 69 6f 6e 28 73 |eval_con|dition(s|
|000026e0| 74 61 62 6c 65 5f 74 72 | 65 65 2d 3e 6c 6e 6f 64 |table_tr|ee->lnod|
|000026f0| 65 29 29 3b 0d 09 09 52 | 45 53 54 4f 52 45 5f 42 |e));...R|ESTORE_B|
|00002700| 49 4e 44 49 4e 47 28 6c | 6f 6f 70 5f 74 61 67 5f |INDING(l|oop_tag_|
|00002710| 73 74 61 63 6b 2c 20 6c | 6f 6f 70 5f 74 61 67 2c |stack, l|oop_tag,|
|00002720| 20 6c 6f 6f 70 5f 74 61 | 67 5f 76 61 6c 69 64 29 | loop_ta|g_valid)|
|00002730| 3b 0d 09 09 62 72 65 61 | 6b 3b 0d 0d 09 63 61 73 |;...brea|k;...cas|
|00002740| 65 20 4e 6f 64 65 5f 4b | 5f 66 6f 72 3a 0d 09 09 |e Node_K|_for:...|
|00002750| 50 55 53 48 5f 42 49 4e | 44 49 4e 47 28 6c 6f 6f |PUSH_BIN|DING(loo|
|00002760| 70 5f 74 61 67 5f 73 74 | 61 63 6b 2c 20 6c 6f 6f |p_tag_st|ack, loo|
|00002770| 70 5f 74 61 67 2c 20 6c | 6f 6f 70 5f 74 61 67 5f |p_tag, l|oop_tag_|
|00002780| 76 61 6c 69 64 29 3b 0d | 09 09 44 42 47 5f 50 28 |valid);.|..DBG_P(|
|00002790| 28 22 46 4f 52 22 2c 20 | 74 72 65 65 2d 3e 66 6f |("FOR", |tree->fo|
|000027a0| 72 6c 6f 6f 70 2d 3e 69 | 6e 69 74 29 29 3b 0d 09 |rloop->i|nit));..|
|000027b0| 09 28 76 6f 69 64 29 20 | 69 6e 74 65 72 70 72 65 |.(void) |interpre|
|000027c0| 74 28 74 72 65 65 2d 3e | 66 6f 72 6c 6f 6f 70 2d |t(tree->|forloop-|
|000027d0| 3e 69 6e 69 74 29 3b 0d | 09 09 44 42 47 5f 50 28 |>init);.|..DBG_P(|
|000027e0| 28 22 46 4f 52 2e 57 48 | 49 4c 45 22 2c 20 74 72 |("FOR.WH|ILE", tr|
|000027f0| 65 65 2d 3e 66 6f 72 6c | 6f 6f 70 2d 3e 63 6f 6e |ee->forl|oop->con|
|00002800| 64 29 29 3b 0d 09 09 73 | 74 61 62 6c 65 5f 74 72 |d));...s|table_tr|
|00002810| 65 65 20 3d 20 74 72 65 | 65 3b 0d 09 09 77 68 69 |ee = tre|e;...whi|
|00002820| 6c 65 20 28 65 76 61 6c | 5f 63 6f 6e 64 69 74 69 |le (eval|_conditi|
|00002830| 6f 6e 28 73 74 61 62 6c | 65 5f 74 72 65 65 2d 3e |on(stabl|e_tree->|
|00002840| 66 6f 72 6c 6f 6f 70 2d | 3e 63 6f 6e 64 29 29 20 |forloop-|>cond)) |
|00002850| 7b 0d 09 09 09 73 77 69 | 74 63 68 20 28 73 65 74 |{....swi|tch (set|
|00002860| 6a 6d 70 28 6c 6f 6f 70 | 5f 74 61 67 29 29 20 7b |jmp(loop|_tag)) {|
|00002870| 0d 09 09 09 63 61 73 65 | 20 30 3a 09 2f 2a 20 6e |....case| 0:./* n|
|00002880| 6f 72 6d 61 6c 20 6e 6f | 6e 2d 6a 75 6d 70 20 2a |ormal no|n-jump *|
|00002890| 2f 0d 09 09 09 09 44 42 | 47 5f 50 28 28 22 46 4f |/.....DB|G_P(("FO|
|000028a0| 52 2e 44 4f 22 2c 20 73 | 74 61 62 6c 65 5f 74 72 |R.DO", s|table_tr|
|000028b0| 65 65 2d 3e 6c 6e 6f 64 | 65 29 29 3b 0d 09 09 09 |ee->lnod|e));....|
|000028c0| 09 28 76 6f 69 64 29 20 | 69 6e 74 65 72 70 72 65 |.(void) |interpre|
|000028d0| 74 28 73 74 61 62 6c 65 | 5f 74 72 65 65 2d 3e 6c |t(stable|_tree->l|
|000028e0| 6e 6f 64 65 29 3b 0d 09 | 09 09 09 2f 2a 20 66 61 |node);..|.../* fa|
|000028f0| 6c 6c 20 74 68 72 6f 75 | 67 68 20 2a 2f 0d 09 09 |ll throu|gh */...|
|00002900| 09 63 61 73 65 20 54 41 | 47 5f 43 4f 4e 54 49 4e |.case TA|G_CONTIN|
|00002910| 55 45 3a 09 2f 2a 20 63 | 6f 6e 74 69 6e 75 65 20 |UE:./* c|ontinue |
|00002920| 73 74 61 74 65 6d 65 6e | 74 20 2a 2f 0d 09 09 09 |statemen|t */....|
|00002930| 09 44 42 47 5f 50 28 28 | 22 46 4f 52 2e 49 4e 43 |.DBG_P((|"FOR.INC|
|00002940| 52 22 2c 20 73 74 61 62 | 6c 65 5f 74 72 65 65 2d |R", stab|le_tree-|
|00002950| 3e 66 6f 72 6c 6f 6f 70 | 2d 3e 69 6e 63 72 29 29 |>forloop|->incr))|
|00002960| 3b 0d 09 09 09 09 28 76 | 6f 69 64 29 20 69 6e 74 |;.....(v|oid) int|
|00002970| 65 72 70 72 65 74 28 73 | 74 61 62 6c 65 5f 74 72 |erpret(s|table_tr|
|00002980| 65 65 2d 3e 66 6f 72 6c | 6f 6f 70 2d 3e 69 6e 63 |ee->forl|oop->inc|
|00002990| 72 29 3b 0d 09 09 09 09 | 62 72 65 61 6b 3b 0d 09 |r);.....|break;..|
|000029a0| 09 09 63 61 73 65 20 54 | 41 47 5f 42 52 45 41 4b |..case T|AG_BREAK|
|000029b0| 3a 09 2f 2a 20 62 72 65 | 61 6b 20 73 74 61 74 65 |:./* bre|ak state|
|000029c0| 6d 65 6e 74 20 2a 2f 0d | 09 09 09 09 52 45 53 54 |ment */.|....REST|
|000029d0| 4f 52 45 5f 42 49 4e 44 | 49 4e 47 28 6c 6f 6f 70 |ORE_BIND|ING(loop|
|000029e0| 5f 74 61 67 5f 73 74 61 | 63 6b 2c 20 6c 6f 6f 70 |_tag_sta|ck, loop|
|000029f0| 5f 74 61 67 2c 20 6c 6f | 6f 70 5f 74 61 67 5f 76 |_tag, lo|op_tag_v|
|00002a00| 61 6c 69 64 29 3b 0d 09 | 09 09 09 72 65 74 75 72 |alid);..|...retur|
|00002a10| 6e 20 31 3b 0d 09 09 09 | 64 65 66 61 75 6c 74 3a |n 1;....|default:|
|00002a20| 0d 09 09 09 09 63 61 6e | 74 5f 68 61 70 70 65 6e |.....can|t_happen|
|00002a30| 28 29 3b 0d 09 09 09 7d | 0d 09 09 7d 0d 09 09 52 |();....}|...}...R|
|00002a40| 45 53 54 4f 52 45 5f 42 | 49 4e 44 49 4e 47 28 6c |ESTORE_B|INDING(l|
|00002a50| 6f 6f 70 5f 74 61 67 5f | 73 74 61 63 6b 2c 20 6c |oop_tag_|stack, l|
|00002a60| 6f 6f 70 5f 74 61 67 2c | 20 6c 6f 6f 70 5f 74 61 |oop_tag,| loop_ta|
|00002a70| 67 5f 76 61 6c 69 64 29 | 3b 0d 09 09 62 72 65 61 |g_valid)|;...brea|
|00002a80| 6b 3b 0d 0d 09 63 61 73 | 65 20 4e 6f 64 65 5f 4b |k;...cas|e Node_K|
|00002a90| 5f 61 72 72 61 79 66 6f | 72 3a 0d 23 64 65 66 69 |_arrayfo|r:.#defi|
|00002aa0| 6e 65 20 68 61 6b 76 61 | 72 20 66 6f 72 6c 6f 6f |ne hakva|r forloo|
|00002ab0| 70 2d 3e 69 6e 69 74 0d | 23 64 65 66 69 6e 65 20 |p->init.|#define |
|00002ac0| 61 72 72 76 61 72 20 66 | 6f 72 6c 6f 6f 70 2d 3e |arrvar f|orloop->|
|00002ad0| 69 6e 63 72 0d 09 09 50 | 55 53 48 5f 42 49 4e 44 |incr...P|USH_BIND|
|00002ae0| 49 4e 47 28 6c 6f 6f 70 | 5f 74 61 67 5f 73 74 61 |ING(loop|_tag_sta|
|00002af0| 63 6b 2c 20 6c 6f 6f 70 | 5f 74 61 67 2c 20 6c 6f |ck, loop|_tag, lo|
|00002b00| 6f 70 5f 74 61 67 5f 76 | 61 6c 69 64 29 3b 0d 09 |op_tag_v|alid);..|
|00002b10| 09 44 42 47 5f 50 28 28 | 22 41 46 4f 52 2e 56 41 |.DBG_P((|"AFOR.VA|
|00002b20| 52 22 2c 20 74 72 65 65 | 2d 3e 68 61 6b 76 61 72 |R", tree|->hakvar|
|00002b30| 29 29 3b 0d 09 09 6c 68 | 73 20 3d 20 28 76 6f 6c |));...lh|s = (vol|
|00002b40| 61 74 69 6c 65 20 4e 4f | 44 45 20 2a 2a 29 20 67 |atile NO|DE **) g|
|00002b50| 65 74 5f 6c 68 73 28 74 | 72 65 65 2d 3e 68 61 6b |et_lhs(t|ree->hak|
|00002b60| 76 61 72 2c 20 31 29 3b | 0d 09 09 74 20 3d 20 74 |var, 1);|...t = t|
|00002b70| 72 65 65 2d 3e 61 72 72 | 76 61 72 3b 0d 09 09 69 |ree->arr|var;...i|
|00002b80| 66 20 28 74 2d 3e 74 79 | 70 65 20 3d 3d 20 4e 6f |f (t->ty|pe == No|
|00002b90| 64 65 5f 70 61 72 61 6d | 5f 6c 69 73 74 29 0d 09 |de_param|_list)..|
|00002ba0| 09 09 74 20 3d 20 73 74 | 61 63 6b 5f 70 74 72 5b |..t = st|ack_ptr[|
|00002bb0| 74 2d 3e 70 61 72 61 6d | 5f 63 6e 74 5d 3b 0d 09 |t->param|_cnt];..|
|00002bc0| 09 73 74 61 62 6c 65 5f | 74 72 65 65 20 3d 20 74 |.stable_|tree = t|
|00002bd0| 72 65 65 3b 0d 09 09 66 | 6f 72 20 28 6c 20 3d 20 |ree;...f|or (l = |
|00002be0| 61 73 73 6f 63 5f 73 63 | 61 6e 28 74 29 3b 20 6c |assoc_sc|an(t); l|
|00002bf0| 3b 20 6c 20 3d 20 61 73 | 73 6f 63 5f 6e 65 78 74 |; l = as|soc_next|
|00002c00| 28 28 73 74 72 75 63 74 | 20 73 65 61 72 63 68 20 |((struct| search |
|00002c10| 2a 29 6c 29 29 20 7b 0d | 09 09 09 64 65 72 65 66 |*)l)) {.|...deref|
|00002c20| 20 3d 20 2a 28 28 4e 4f | 44 45 20 2a 2a 29 20 6c | = *((NO|DE **) l|
|00002c30| 68 73 29 3b 0d 09 09 09 | 64 6f 5f 64 65 72 65 66 |hs);....|do_deref|
|00002c40| 28 29 3b 0d 09 09 09 2a | 6c 68 73 20 3d 20 64 75 |();....*|lhs = du|
|00002c50| 70 6e 6f 64 65 28 6c 2d | 3e 72 65 74 76 61 6c 29 |pnode(l-|>retval)|
|00002c60| 3b 0d 09 09 09 69 66 20 | 28 66 69 65 6c 64 5f 6e |;....if |(field_n|
|00002c70| 75 6d 20 3d 3d 20 30 29 | 0d 09 09 09 09 73 65 74 |um == 0)|.....set|
|00002c80| 5f 72 65 63 6f 72 64 28 | 66 69 65 6c 64 73 5f 61 |_record(|fields_a|
|00002c90| 72 72 5b 30 5d 2d 3e 73 | 74 70 74 72 2c 0d 09 09 |rr[0]->s|tptr,...|
|00002ca0| 09 09 20 20 20 20 66 69 | 65 6c 64 73 5f 61 72 72 |.. fi|elds_arr|
|00002cb0| 5b 30 5d 2d 3e 73 74 6c | 65 6e 29 3b 0d 09 09 09 |[0]->stl|en);....|
|00002cc0| 44 42 47 5f 50 28 28 22 | 41 46 4f 52 2e 4e 45 58 |DBG_P(("|AFOR.NEX|
|00002cd0| 54 49 53 22 2c 20 2a 6c | 68 73 29 29 3b 0d 09 09 |TIS", *l|hs));...|
|00002ce0| 09 73 77 69 74 63 68 20 | 28 73 65 74 6a 6d 70 28 |.switch |(setjmp(|
|00002cf0| 6c 6f 6f 70 5f 74 61 67 | 29 29 20 7b 0d 09 09 09 |loop_tag|)) {....|
|00002d00| 63 61 73 65 20 30 3a 0d | 09 09 09 09 44 42 47 5f |case 0:.|....DBG_|
|00002d10| 50 28 28 22 41 46 4f 52 | 2e 44 4f 22 2c 20 73 74 |P(("AFOR|.DO", st|
|00002d20| 61 62 6c 65 5f 74 72 65 | 65 2d 3e 6c 6e 6f 64 65 |able_tre|e->lnode|
|00002d30| 29 29 3b 0d 09 09 09 09 | 28 76 6f 69 64 29 20 69 |));.....|(void) i|
|00002d40| 6e 74 65 72 70 72 65 74 | 28 73 74 61 62 6c 65 5f |nterpret|(stable_|
|00002d50| 74 72 65 65 2d 3e 6c 6e | 6f 64 65 29 3b 0d 09 09 |tree->ln|ode);...|
|00002d60| 09 63 61 73 65 20 54 41 | 47 5f 43 4f 4e 54 49 4e |.case TA|G_CONTIN|
|00002d70| 55 45 3a 0d 09 09 09 09 | 62 72 65 61 6b 3b 0d 0d |UE:.....|break;..|
|00002d80| 09 09 09 63 61 73 65 20 | 54 41 47 5f 42 52 45 41 |...case |TAG_BREA|
|00002d90| 4b 3a 0d 09 09 09 09 52 | 45 53 54 4f 52 45 5f 42 |K:.....R|ESTORE_B|
|00002da0| 49 4e 44 49 4e 47 28 6c | 6f 6f 70 5f 74 61 67 5f |INDING(l|oop_tag_|
|00002db0| 73 74 61 63 6b 2c 20 6c | 6f 6f 70 5f 74 61 67 2c |stack, l|oop_tag,|
|00002dc0| 20 6c 6f 6f 70 5f 74 61 | 67 5f 76 61 6c 69 64 29 | loop_ta|g_valid)|
|00002dd0| 3b 0d 09 09 09 09 66 69 | 65 6c 64 5f 6e 75 6d 20 |;.....fi|eld_num |
|00002de0| 3d 20 2d 31 3b 0d 09 09 | 09 09 72 65 74 75 72 6e |= -1;...|..return|
|00002df0| 20 31 3b 0d 09 09 09 64 | 65 66 61 75 6c 74 3a 0d | 1;....d|efault:.|
|00002e00| 09 09 09 09 63 61 6e 74 | 5f 68 61 70 70 65 6e 28 |....cant|_happen(|
|00002e10| 29 3b 0d 09 09 09 7d 0d | 09 09 7d 0d 09 09 66 69 |);....}.|..}...fi|
|00002e20| 65 6c 64 5f 6e 75 6d 20 | 3d 20 2d 31 3b 0d 09 09 |eld_num |= -1;...|
|00002e30| 52 45 53 54 4f 52 45 5f | 42 49 4e 44 49 4e 47 28 |RESTORE_|BINDING(|
|00002e40| 6c 6f 6f 70 5f 74 61 67 | 5f 73 74 61 63 6b 2c 20 |loop_tag|_stack, |
|00002e50| 6c 6f 6f 70 5f 74 61 67 | 2c 20 6c 6f 6f 70 5f 74 |loop_tag|, loop_t|
|00002e60| 61 67 5f 76 61 6c 69 64 | 29 3b 0d 09 09 62 72 65 |ag_valid|);...bre|
|00002e70| 61 6b 3b 0d 0d 09 63 61 | 73 65 20 4e 6f 64 65 5f |ak;...ca|se Node_|
|00002e80| 4b 5f 62 72 65 61 6b 3a | 0d 09 09 44 42 47 5f 50 |K_break:|...DBG_P|
|00002e90| 28 28 22 42 52 45 41 4b | 22 2c 20 4e 55 4c 4c 29 |(("BREAK|", NULL)|
|00002ea0| 29 3b 0d 09 09 69 66 20 | 28 6c 6f 6f 70 5f 74 61 |);...if |(loop_ta|
|00002eb0| 67 5f 76 61 6c 69 64 20 | 3d 3d 20 30 29 0d 09 09 |g_valid |== 0)...|
|00002ec0| 09 66 61 74 61 6c 28 22 | 75 6e 65 78 70 65 63 74 |.fatal("|unexpect|
|00002ed0| 65 64 20 62 72 65 61 6b | 22 29 3b 0d 09 09 6c 6f |ed break|");...lo|
|00002ee0| 6e 67 6a 6d 70 28 6c 6f | 6f 70 5f 74 61 67 2c 20 |ngjmp(lo|op_tag, |
|00002ef0| 54 41 47 5f 42 52 45 41 | 4b 29 3b 0d 09 09 62 72 |TAG_BREA|K);...br|
|00002f00| 65 61 6b 3b 0d 0d 09 63 | 61 73 65 20 4e 6f 64 65 |eak;...c|ase Node|
|00002f10| 5f 4b 5f 63 6f 6e 74 69 | 6e 75 65 3a 0d 09 09 44 |_K_conti|nue:...D|
|00002f20| 42 47 5f 50 28 28 22 43 | 4f 4e 54 49 4e 55 45 22 |BG_P(("C|ONTINUE"|
|00002f30| 2c 20 4e 55 4c 4c 29 29 | 3b 0d 09 09 69 66 20 28 |, NULL))|;...if (|
|00002f40| 6c 6f 6f 70 5f 74 61 67 | 5f 76 61 6c 69 64 20 3d |loop_tag|_valid =|
|00002f50| 3d 20 30 29 0d 09 09 09 | 66 61 74 61 6c 28 22 75 |= 0)....|fatal("u|
|00002f60| 6e 65 78 70 65 63 74 65 | 64 20 63 6f 6e 74 69 6e |nexpecte|d contin|
|00002f70| 75 65 22 29 3b 0d 09 09 | 6c 6f 6e 67 6a 6d 70 28 |ue");...|longjmp(|
|00002f80| 6c 6f 6f 70 5f 74 61 67 | 2c 20 54 41 47 5f 43 4f |loop_tag|, TAG_CO|
|00002f90| 4e 54 49 4e 55 45 29 3b | 0d 09 09 62 72 65 61 6b |NTINUE);|...break|
|00002fa0| 3b 0d 0d 09 63 61 73 65 | 20 4e 6f 64 65 5f 4b 5f |;...case| Node_K_|
|00002fb0| 70 72 69 6e 74 3a 0d 09 | 09 44 42 47 5f 50 28 28 |print:..|.DBG_P((|
|00002fc0| 22 50 52 49 4e 54 22 2c | 20 74 72 65 65 29 29 3b |"PRINT",| tree));|
|00002fd0| 0d 09 09 64 6f 5f 70 72 | 69 6e 74 28 74 72 65 65 |...do_pr|int(tree|
|00002fe0| 29 3b 0d 09 09 62 72 65 | 61 6b 3b 0d 0d 09 63 61 |);...bre|ak;...ca|
|00002ff0| 73 65 20 4e 6f 64 65 5f | 4b 5f 70 72 69 6e 74 66 |se Node_|K_printf|
|00003000| 3a 0d 09 09 44 42 47 5f | 50 28 28 22 50 52 49 4e |:...DBG_|P(("PRIN|
|00003010| 54 46 22 2c 20 74 72 65 | 65 29 29 3b 0d 09 09 64 |TF", tre|e));...d|
|00003020| 6f 5f 70 72 69 6e 74 66 | 28 74 72 65 65 29 3b 0d |o_printf|(tree);.|
|00003030| 09 09 62 72 65 61 6b 3b | 0d 0d 09 63 61 73 65 20 |..break;|...case |
|00003040| 4e 6f 64 65 5f 4b 5f 6e | 65 78 74 3a 0d 09 09 44 |Node_K_n|ext:...D|
|00003050| 42 47 5f 50 28 28 22 4e | 45 58 54 22 2c 20 4e 55 |BG_P(("N|EXT", NU|
|00003060| 4c 4c 29 29 3b 0d 09 09 | 6c 6f 6e 67 6a 6d 70 28 |LL));...|longjmp(|
|00003070| 72 75 6c 65 5f 74 61 67 | 2c 20 54 41 47 5f 43 4f |rule_tag|, TAG_CO|
|00003080| 4e 54 49 4e 55 45 29 3b | 0d 09 09 62 72 65 61 6b |NTINUE);|...break|
|00003090| 3b 0d 0d 09 63 61 73 65 | 20 4e 6f 64 65 5f 4b 5f |;...case| Node_K_|
|000030a0| 65 78 69 74 3a 0d 09 09 | 2f 2a 0d 09 09 20 2a 20 |exit:...|/*... * |
|000030b0| 49 6e 20 41 2c 4b 2c 26 | 57 2c 20 70 2e 20 34 39 |In A,K,&|W, p. 49|
|000030c0| 2c 20 69 74 20 73 61 79 | 73 20 74 68 61 74 20 61 |, it say|s that a|
|000030d0| 6e 20 65 78 69 74 20 73 | 74 61 74 65 6d 65 6e 74 |n exit s|tatement|
|000030e0| 20 22 2e 2e 2e 0d 09 09 | 20 2a 20 63 61 75 73 65 | "......| * cause|
|000030f0| 73 20 74 68 65 20 70 72 | 6f 67 72 61 6d 20 74 6f |s the pr|ogram to|
|00003100| 20 62 65 68 61 76 65 20 | 61 73 20 69 66 20 74 68 | behave |as if th|
|00003110| 65 20 65 6e 64 20 6f 66 | 20 69 6e 70 75 74 20 68 |e end of| input h|
|00003120| 61 64 0d 09 09 20 2a 20 | 6f 63 63 75 72 72 65 64 |ad... * |occurred|
|00003130| 3b 20 6e 6f 20 6d 6f 72 | 65 20 69 6e 70 75 74 20 |; no mor|e input |
|00003140| 69 73 20 72 65 61 64 2c | 20 61 6e 64 20 74 68 65 |is read,| and the|
|00003150| 20 45 4e 44 20 61 63 74 | 69 6f 6e 73 2c 20 69 66 | END act|ions, if|
|00003160| 0d 09 09 20 2a 20 61 6e | 79 20 61 72 65 20 65 78 |... * an|y are ex|
|00003170| 65 63 75 74 65 64 2e 22 | 20 54 68 69 73 20 69 6d |ecuted."| This im|
|00003180| 70 6c 69 65 73 20 74 68 | 61 74 20 74 68 65 20 72 |plies th|at the r|
|00003190| 65 73 74 20 6f 66 20 74 | 68 65 20 72 75 6c 65 73 |est of t|he rules|
|000031a0| 0d 09 09 20 2a 20 61 72 | 65 20 6e 6f 74 20 64 6f |... * ar|e not do|
|000031b0| 6e 65 2e 20 53 6f 20 77 | 65 20 69 6d 6d 65 64 69 |ne. So w|e immedi|
|000031c0| 61 74 65 6c 79 20 62 72 | 65 61 6b 20 6f 75 74 20 |ately br|eak out |
|000031d0| 6f 66 20 74 68 65 20 6d | 61 69 6e 20 6c 6f 6f 70 |of the m|ain loop|
|000031e0| 2e 0d 09 09 20 2a 2f 0d | 09 09 44 42 47 5f 50 28 |.... */.|..DBG_P(|
|000031f0| 28 22 45 58 49 54 22 2c | 20 4e 55 4c 4c 29 29 3b |("EXIT",| NULL));|
|00003200| 0d 09 09 65 78 69 74 69 | 6e 67 20 3d 20 31 3b 0d |...exiti|ng = 1;.|
|00003210| 09 09 69 66 20 28 74 72 | 65 65 29 20 7b 0d 09 09 |..if (tr|ee) {...|
|00003220| 09 74 20 3d 20 74 72 65 | 65 5f 65 76 61 6c 28 74 |.t = tre|e_eval(t|
|00003230| 72 65 65 2d 3e 6c 6e 6f | 64 65 29 3b 0d 09 09 09 |ree->lno|de);....|
|00003240| 65 78 69 74 5f 76 61 6c | 20 3d 20 28 73 68 6f 72 |exit_val| = (shor|
|00003250| 74 29 20 66 6f 72 63 65 | 5f 6e 75 6d 62 65 72 28 |t) force|_number(|
|00003260| 74 29 3b 0d 09 09 7d 0d | 09 09 66 72 65 65 5f 74 |t);...}.|..free_t|
|00003270| 65 6d 70 28 74 29 3b 0d | 09 09 6c 6f 6e 67 6a 6d |emp(t);.|..longjm|
|00003280| 70 28 72 75 6c 65 5f 74 | 61 67 2c 20 54 41 47 5f |p(rule_t|ag, TAG_|
|00003290| 42 52 45 41 4b 29 3b 0d | 09 09 62 72 65 61 6b 3b |BREAK);.|..break;|
|000032a0| 0d 0d 09 63 61 73 65 20 | 4e 6f 64 65 5f 4b 5f 72 |...case |Node_K_r|
|000032b0| 65 74 75 72 6e 3a 0d 09 | 09 44 42 47 5f 50 28 28 |eturn:..|.DBG_P((|
|000032c0| 22 52 45 54 55 52 4e 22 | 2c 20 4e 55 4c 4c 29 29 |"RETURN"|, NULL))|
|000032d0| 3b 0d 09 09 74 20 3d 20 | 74 72 65 65 5f 65 76 61 |;...t = |tree_eva|
|000032e0| 6c 28 74 72 65 65 2d 3e | 6c 6e 6f 64 65 29 3b 0d |l(tree->|lnode);.|
|000032f0| 09 09 72 65 74 5f 6e 6f | 64 65 20 3d 20 64 75 70 |..ret_no|de = dup|
|00003300| 6e 6f 64 65 28 74 29 3b | 0d 09 09 66 72 65 65 5f |node(t);|...free_|
|00003310| 74 65 6d 70 28 74 29 3b | 0d 09 09 6c 6f 6e 67 6a |temp(t);|...longj|
|00003320| 6d 70 28 66 75 6e 63 5f | 74 61 67 2c 20 54 41 47 |mp(func_|tag, TAG|
|00003330| 5f 52 45 54 55 52 4e 29 | 3b 0d 09 09 62 72 65 61 |_RETURN)|;...brea|
|00003340| 6b 3b 0d 0d 09 64 65 66 | 61 75 6c 74 3a 0d 09 09 |k;...def|ault:...|
|00003350| 2f 2a 0d 09 09 20 2a 20 | 41 70 70 65 61 72 73 20 |/*... * |Appears |
|00003360| 74 6f 20 62 65 20 61 6e | 20 65 78 70 72 65 73 73 |to be an| express|
|00003370| 69 6f 6e 20 73 74 61 74 | 65 6d 65 6e 74 2e 20 20 |ion stat|ement. |
|00003380| 54 68 72 6f 77 20 61 77 | 61 79 20 74 68 65 0d 09 |Throw aw|ay the..|
|00003390| 09 20 2a 20 76 61 6c 75 | 65 2e 20 0d 09 09 20 2a |. * valu|e. ... *|
|000033a0| 2f 0d 09 09 44 42 47 5f | 50 28 28 22 45 22 2c 20 |/...DBG_|P(("E", |
|000033b0| 4e 55 4c 4c 29 29 3b 0d | 09 09 74 20 3d 20 74 72 |NULL));.|..t = tr|
|000033c0| 65 65 5f 65 76 61 6c 28 | 74 72 65 65 29 3b 0d 09 |ee_eval(|tree);..|
|000033d0| 09 66 72 65 65 5f 74 65 | 6d 70 28 74 29 3b 0d 09 |.free_te|mp(t);..|
|000033e0| 09 62 72 65 61 6b 3b 0d | 09 7d 0d 09 72 65 74 75 |.break;.|.}..retu|
|000033f0| 72 6e 20 31 3b 0d 7d 0d | 0d 2f 2a 20 65 76 61 6c |rn 1;.}.|./* eval|
|00003400| 75 61 74 65 20 61 20 73 | 75 62 74 72 65 65 2c 20 |uate a s|ubtree, |
|00003410| 61 6c 6c 6f 63 61 74 69 | 6e 67 20 73 74 72 69 6e |allocati|ng strin|
|00003420| 67 73 20 6f 6e 20 61 20 | 74 65 6d 70 6f 72 61 72 |gs on a |temporar|
|00003430| 79 20 73 74 61 63 6b 2e | 20 2a 2f 0d 0d 4e 4f 44 |y stack.| */..NOD|
|00003440| 45 20 2a 72 5f 74 72 65 | 65 5f 65 76 61 6c 28 4e |E *r_tre|e_eval(N|
|00003450| 4f 44 45 20 2a 74 72 65 | 65 29 0d 7b 0d 09 72 65 |ODE *tre|e).{..re|
|00003460| 67 69 73 74 65 72 20 4e | 4f 44 45 20 2a 72 2c 20 |gister N|ODE *r, |
|00003470| 2a 74 31 2c 20 2a 74 32 | 3b 09 2f 2a 20 72 65 74 |*t1, *t2|;./* ret|
|00003480| 75 72 6e 20 76 61 6c 75 | 65 20 26 20 74 65 6d 70 |urn valu|e & temp|
|00003490| 6f 72 61 72 79 20 73 75 | 62 74 72 65 65 73 20 2a |orary su|btrees *|
|000034a0| 2f 0d 09 73 68 6f 72 74 | 20 69 3b 0d 09 72 65 67 |/..short| i;..reg|
|000034b0| 69 73 74 65 72 20 4e 4f | 44 45 20 2a 2a 6c 68 73 |ister NO|DE **lhs|
|000034c0| 3b 0d 09 73 68 6f 72 74 | 20 64 69 3b 0d 09 41 57 |;..short| di;..AW|
|000034d0| 4b 4e 55 4d 20 78 2c 20 | 78 32 3b 0d 09 6c 6f 6e |KNUM x, |x2;..lon|
|000034e0| 67 20 6c 78 3b 0d 09 65 | 78 74 65 72 6e 20 4e 4f |g lx;..e|xtern NO|
|000034f0| 44 45 20 2a 2a 66 69 65 | 6c 64 73 5f 61 72 72 3b |DE **fie|lds_arr;|
|00003500| 0d 0d 09 73 6f 75 72 63 | 65 20 3d 20 74 72 65 65 |...sourc|e = tree|
|00003510| 2d 3e 73 6f 75 72 63 65 | 5f 66 69 6c 65 3b 0d 09 |->source|_file;..|
|00003520| 73 6f 75 72 63 65 6c 69 | 6e 65 20 3d 20 74 72 65 |sourceli|ne = tre|
|00003530| 65 2d 3e 73 6f 75 72 63 | 65 5f 6c 69 6e 65 3b 0d |e->sourc|e_line;.|
|00003540| 09 73 77 69 74 63 68 20 | 28 74 72 65 65 2d 3e 74 |.switch |(tree->t|
|00003550| 79 70 65 29 20 7b 0d 09 | 63 61 73 65 20 4e 6f 64 |ype) {..|case Nod|
|00003560| 65 5f 61 6e 64 3a 0d 09 | 09 44 42 47 5f 50 28 28 |e_and:..|.DBG_P((|
|00003570| 22 41 4e 44 22 2c 20 74 | 72 65 65 29 29 3b 0d 09 |"AND", t|ree));..|
|00003580| 09 72 65 74 75 72 6e 20 | 74 6d 70 5f 6e 75 6d 62 |.return |tmp_numb|
|00003590| 65 72 28 28 41 57 4b 4e | 55 4d 29 20 28 65 76 61 |er((AWKN|UM) (eva|
|000035a0| 6c 5f 63 6f 6e 64 69 74 | 69 6f 6e 28 74 72 65 65 |l_condit|ion(tree|
|000035b0| 2d 3e 6c 6e 6f 64 65 29 | 0d 09 09 09 09 09 20 20 |->lnode)|...... |
|000035c0| 20 20 26 26 20 65 76 61 | 6c 5f 63 6f 6e 64 69 74 | && eva|l_condit|
|000035d0| 69 6f 6e 28 74 72 65 65 | 2d 3e 72 6e 6f 64 65 29 |ion(tree|->rnode)|
|000035e0| 29 29 3b 0d 0d 09 63 61 | 73 65 20 4e 6f 64 65 5f |));...ca|se Node_|
|000035f0| 6f 72 3a 0d 09 09 44 42 | 47 5f 50 28 28 22 4f 52 |or:...DB|G_P(("OR|
|00003600| 22 2c 20 74 72 65 65 29 | 29 3b 0d 09 09 72 65 74 |", tree)|);...ret|
|00003610| 75 72 6e 20 74 6d 70 5f | 6e 75 6d 62 65 72 28 28 |urn tmp_|number((|
|00003620| 41 57 4b 4e 55 4d 29 20 | 28 65 76 61 6c 5f 63 6f |AWKNUM) |(eval_co|
|00003630| 6e 64 69 74 69 6f 6e 28 | 74 72 65 65 2d 3e 6c 6e |ndition(|tree->ln|
|00003640| 6f 64 65 29 0d 09 09 09 | 09 09 20 20 20 20 7c 7c |ode)....|.. |||
|00003650| 20 65 76 61 6c 5f 63 6f | 6e 64 69 74 69 6f 6e 28 | eval_co|ndition(|
|00003660| 74 72 65 65 2d 3e 72 6e | 6f 64 65 29 29 29 3b 0d |tree->rn|ode)));.|
|00003670| 0d 09 63 61 73 65 20 4e | 6f 64 65 5f 6e 6f 74 3a |..case N|ode_not:|
|00003680| 0d 09 09 44 42 47 5f 50 | 28 28 22 4e 4f 54 22 2c |...DBG_P|(("NOT",|
|00003690| 20 74 72 65 65 29 29 3b | 0d 09 09 72 65 74 75 72 | tree));|...retur|
|000036a0| 6e 20 74 6d 70 5f 6e 75 | 6d 62 65 72 28 28 41 57 |n tmp_nu|mber((AW|
|000036b0| 4b 4e 55 4d 29 20 21 20 | 65 76 61 6c 5f 63 6f 6e |KNUM) ! |eval_con|
|000036c0| 64 69 74 69 6f 6e 28 74 | 72 65 65 2d 3e 6c 6e 6f |dition(t|ree->lno|
|000036d0| 64 65 29 29 3b 0d 0d 09 | 09 2f 2a 20 42 75 69 6c |de));...|./* Buil|
|000036e0| 74 69 6e 73 20 2a 2f 0d | 09 63 61 73 65 20 4e 6f |tins */.|.case No|
|000036f0| 64 65 5f 62 75 69 6c 74 | 69 6e 3a 0d 09 09 44 42 |de_built|in:...DB|
|00003700| 47 5f 50 28 28 22 62 75 | 69 6c 74 69 6e 22 2c 20 |G_P(("bu|iltin", |
|00003710| 74 72 65 65 29 29 3b 0d | 09 09 72 65 74 75 72 6e |tree));.|..return|
|00003720| 20 28 28 2a 74 72 65 65 | 2d 3e 70 72 6f 63 29 20 | ((*tree|->proc) |
|00003730| 28 74 72 65 65 2d 3e 73 | 75 62 6e 6f 64 65 29 29 |(tree->s|ubnode))|
|00003740| 3b 0d 0d 09 63 61 73 65 | 20 4e 6f 64 65 5f 4b 5f |;...case| Node_K_|
|00003750| 67 65 74 6c 69 6e 65 3a | 0d 09 09 44 42 47 5f 50 |getline:|...DBG_P|
|00003760| 28 28 22 47 45 54 4c 49 | 4e 45 22 2c 20 74 72 65 |(("GETLI|NE", tre|
|00003770| 65 29 29 3b 0d 09 09 72 | 65 74 75 72 6e 20 28 64 |e));...r|eturn (d|
|00003780| 6f 5f 67 65 74 6c 69 6e | 65 28 74 72 65 65 29 29 |o_getlin|e(tree))|
|00003790| 3b 0d 0d 09 63 61 73 65 | 20 4e 6f 64 65 5f 69 6e |;...case| Node_in|
|000037a0| 5f 61 72 72 61 79 3a 0d | 09 09 44 42 47 5f 50 28 |_array:.|..DBG_P(|
|000037b0| 28 22 49 4e 5f 41 52 52 | 41 59 22 2c 20 74 72 65 |("IN_ARR|AY", tre|
|000037c0| 65 29 29 3b 0d 09 09 72 | 65 74 75 72 6e 20 74 6d |e));...r|eturn tm|
|000037d0| 70 5f 6e 75 6d 62 65 72 | 28 28 41 57 4b 4e 55 4d |p_number|((AWKNUM|
|000037e0| 29 20 69 6e 5f 61 72 72 | 61 79 28 74 72 65 65 2d |) in_arr|ay(tree-|
|000037f0| 3e 6c 6e 6f 64 65 2c 20 | 74 72 65 65 2d 3e 72 6e |>lnode, |tree->rn|
|00003800| 6f 64 65 29 29 3b 0d 0d | 09 63 61 73 65 20 4e 6f |ode));..|.case No|
|00003810| 64 65 5f 66 75 6e 63 5f | 63 61 6c 6c 3a 0d 09 09 |de_func_|call:...|
|00003820| 44 42 47 5f 50 28 28 22 | 66 75 6e 63 5f 63 61 6c |DBG_P(("|func_cal|
|00003830| 6c 22 2c 20 74 72 65 65 | 29 29 3b 0d 09 09 72 65 |l", tree|));...re|
|00003840| 74 75 72 6e 20 66 75 6e | 63 5f 63 61 6c 6c 28 74 |turn fun|c_call(t|
|00003850| 72 65 65 2d 3e 72 6e 6f | 64 65 2c 20 74 72 65 65 |ree->rno|de, tree|
|00003860| 2d 3e 6c 6e 6f 64 65 29 | 3b 0d 0d 09 63 61 73 65 |->lnode)|;...case|
|00003870| 20 4e 6f 64 65 5f 4b 5f | 64 65 6c 65 74 65 3a 0d | Node_K_|delete:.|
|00003880| 09 09 44 42 47 5f 50 28 | 28 22 44 45 4c 45 54 45 |..DBG_P(|("DELETE|
|00003890| 22 2c 20 74 72 65 65 29 | 29 3b 0d 09 09 64 6f 5f |", tree)|);...do_|
|000038a0| 64 65 6c 65 74 65 28 74 | 72 65 65 2d 3e 6c 6e 6f |delete(t|ree->lno|
|000038b0| 64 65 2c 20 74 72 65 65 | 2d 3e 72 6e 6f 64 65 29 |de, tree|->rnode)|
|000038c0| 3b 0d 09 09 72 65 74 75 | 72 6e 20 4e 6e 75 6c 6c |;...retu|rn Nnull|
|000038d0| 5f 73 74 72 69 6e 67 3b | 0d 0d 09 09 2f 2a 20 75 |_string;|..../* u|
|000038e0| 6e 61 72 79 20 6f 70 65 | 72 61 74 69 6f 6e 73 20 |nary ope|rations |
|000038f0| 2a 2f 0d 0d 09 63 61 73 | 65 20 4e 6f 64 65 5f 76 |*/...cas|e Node_v|
|00003900| 61 72 3a 0d 09 63 61 73 | 65 20 4e 6f 64 65 5f 76 |ar:..cas|e Node_v|
|00003910| 61 72 5f 61 72 72 61 79 | 3a 0d 09 63 61 73 65 20 |ar_array|:..case |
|00003920| 4e 6f 64 65 5f 70 61 72 | 61 6d 5f 6c 69 73 74 3a |Node_par|am_list:|
|00003930| 0d 09 63 61 73 65 20 4e | 6f 64 65 5f 73 75 62 73 |..case N|ode_subs|
|00003940| 63 72 69 70 74 3a 0d 09 | 63 61 73 65 20 4e 6f 64 |cript:..|case Nod|
|00003950| 65 5f 66 69 65 6c 64 5f | 73 70 65 63 3a 0d 09 09 |e_field_|spec:...|
|00003960| 44 42 47 5f 50 28 28 22 | 76 61 72 5f 74 79 70 65 |DBG_P(("|var_type|
|00003970| 20 72 65 66 22 2c 20 74 | 72 65 65 29 29 3b 0d 09 | ref", t|ree));..|
|00003980| 09 6c 68 73 20 3d 20 67 | 65 74 5f 6c 68 73 28 74 |.lhs = g|et_lhs(t|
|00003990| 72 65 65 2c 20 30 29 3b | 0d 09 09 66 69 65 6c 64 |ree, 0);|...field|
|000039a0| 5f 6e 75 6d 20 3d 20 2d | 31 3b 0d 09 09 64 65 72 |_num = -|1;...der|
|000039b0| 65 66 20 3d 20 30 3b 0d | 09 09 72 65 74 75 72 6e |ef = 0;.|..return|
|000039c0| 20 2a 6c 68 73 3b 0d 0d | 09 63 61 73 65 20 4e 6f | *lhs;..|.case No|
|000039d0| 64 65 5f 75 6e 61 72 79 | 5f 6d 69 6e 75 73 3a 0d |de_unary|_minus:.|
|000039e0| 09 09 44 42 47 5f 50 28 | 28 22 55 4d 49 4e 55 53 |..DBG_P(|("UMINUS|
|000039f0| 22 2c 20 74 72 65 65 29 | 29 3b 0d 09 09 74 31 20 |", tree)|);...t1 |
|00003a00| 3d 20 74 72 65 65 5f 65 | 76 61 6c 28 74 72 65 65 |= tree_e|val(tree|
|00003a10| 2d 3e 73 75 62 6e 6f 64 | 65 29 3b 0d 09 09 78 20 |->subnod|e);...x |
|00003a20| 3d 20 2d 66 6f 72 63 65 | 5f 6e 75 6d 62 65 72 28 |= -force|_number(|
|00003a30| 74 31 29 3b 0d 09 09 66 | 72 65 65 5f 74 65 6d 70 |t1);...f|ree_temp|
|00003a40| 28 74 31 29 3b 0d 09 09 | 72 65 74 75 72 6e 20 74 |(t1);...|return t|
|00003a50| 6d 70 5f 6e 75 6d 62 65 | 72 28 78 29 3b 0d 0d 09 |mp_numbe|r(x);...|
|00003a60| 63 61 73 65 20 4e 6f 64 | 65 5f 63 6f 6e 64 5f 65 |case Nod|e_cond_e|
|00003a70| 78 70 3a 0d 09 09 44 42 | 47 5f 50 28 28 22 3f 3a |xp:...DB|G_P(("?:|
|00003a80| 22 2c 20 74 72 65 65 29 | 29 3b 0d 09 09 69 66 20 |", tree)|);...if |
|00003a90| 28 65 76 61 6c 5f 63 6f | 6e 64 69 74 69 6f 6e 28 |(eval_co|ndition(|
|00003aa0| 74 72 65 65 2d 3e 6c 6e | 6f 64 65 29 29 20 7b 0d |tree->ln|ode)) {.|
|00003ab0| 09 09 09 44 42 47 5f 50 | 28 28 22 54 72 75 65 22 |...DBG_P|(("True"|
|00003ac0| 2c 20 74 72 65 65 2d 3e | 72 6e 6f 64 65 2d 3e 6c |, tree->|rnode->l|
|00003ad0| 6e 6f 64 65 29 29 3b 0d | 09 09 09 72 65 74 75 72 |node));.|...retur|
|00003ae0| 6e 20 74 72 65 65 5f 65 | 76 61 6c 28 74 72 65 65 |n tree_e|val(tree|
|00003af0| 2d 3e 72 6e 6f 64 65 2d | 3e 6c 6e 6f 64 65 29 3b |->rnode-|>lnode);|
|00003b00| 0d 09 09 7d 0d 09 09 44 | 42 47 5f 50 28 28 22 46 |...}...D|BG_P(("F|
|00003b10| 61 6c 73 65 22 2c 20 74 | 72 65 65 2d 3e 72 6e 6f |alse", t|ree->rno|
|00003b20| 64 65 2d 3e 72 6e 6f 64 | 65 29 29 3b 0d 09 09 72 |de->rnod|e));...r|
|00003b30| 65 74 75 72 6e 20 74 72 | 65 65 5f 65 76 61 6c 28 |eturn tr|ee_eval(|
|00003b40| 74 72 65 65 2d 3e 72 6e | 6f 64 65 2d 3e 72 6e 6f |tree->rn|ode->rno|
|00003b50| 64 65 29 3b 0d 0d 09 63 | 61 73 65 20 4e 6f 64 65 |de);...c|ase Node|
|00003b60| 5f 6d 61 74 63 68 3a 0d | 09 63 61 73 65 20 4e 6f |_match:.|.case No|
|00003b70| 64 65 5f 6e 6f 6d 61 74 | 63 68 3a 0d 09 63 61 73 |de_nomat|ch:..cas|
|00003b80| 65 20 4e 6f 64 65 5f 72 | 65 67 65 78 3a 0d 09 09 |e Node_r|egex:...|
|00003b90| 44 42 47 5f 50 28 28 22 | 5b 6e 6f 5d 6d 61 74 63 |DBG_P(("|[no]matc|
|00003ba0| 68 5f 6f 70 22 2c 20 74 | 72 65 65 29 29 3b 0d 09 |h_op", t|ree));..|
|00003bb0| 09 72 65 74 75 72 6e 20 | 6d 61 74 63 68 5f 6f 70 |.return |match_op|
|00003bc0| 28 74 72 65 65 29 3b 0d | 0d 09 63 61 73 65 20 4e |(tree);.|..case N|
|00003bd0| 6f 64 65 5f 66 75 6e 63 | 3a 0d 09 09 66 61 74 61 |ode_func|:...fata|
|00003be0| 6c 28 22 66 75 6e 63 74 | 69 6f 6e 20 60 25 73 27 |l("funct|ion `%s'|
|00003bf0| 20 63 61 6c 6c 65 64 20 | 77 69 74 68 20 73 70 61 | called |with spa|
|00003c00| 63 65 20 62 65 74 77 65 | 65 6e 20 6e 61 6d 65 20 |ce betwe|en name |
|00003c10| 61 6e 64 20 28 2c 5c 6e | 25 73 22 2c 0d 09 09 09 |and (,\n|%s",....|
|00003c20| 74 72 65 65 2d 3e 6c 6e | 6f 64 65 2d 3e 70 61 72 |tree->ln|ode->par|
|00003c30| 61 6d 2c 0d 09 09 09 22 | 6f 72 20 75 73 65 64 20 |am,...."|or used |
|00003c40| 69 6e 20 6f 74 68 65 72 | 20 65 78 70 72 65 73 73 |in other| express|
|00003c50| 69 6f 6e 20 63 6f 6e 74 | 65 78 74 22 29 3b 0d 0d |ion cont|ext");..|
|00003c60| 09 2f 2a 20 61 73 73 69 | 67 6e 6d 65 6e 74 73 20 |./* assi|gnments |
|00003c70| 2a 2f 0d 09 63 61 73 65 | 20 4e 6f 64 65 5f 61 73 |*/..case| Node_as|
|00003c80| 73 69 67 6e 3a 0d 09 09 | 44 42 47 5f 50 28 28 22 |sign:...|DBG_P(("|
|00003c90| 41 53 53 49 47 4e 22 2c | 20 74 72 65 65 29 29 3b |ASSIGN",| tree));|
|00003ca0| 0d 09 09 72 20 3d 20 74 | 72 65 65 5f 65 76 61 6c |...r = t|ree_eval|
|00003cb0| 28 74 72 65 65 2d 3e 72 | 6e 6f 64 65 29 3b 0d 09 |(tree->r|node);..|
|00003cc0| 09 6c 68 73 20 3d 20 67 | 65 74 5f 6c 68 73 28 74 |.lhs = g|et_lhs(t|
|00003cd0| 72 65 65 2d 3e 6c 6e 6f | 64 65 2c 20 31 29 3b 0d |ree->lno|de, 1);.|
|00003ce0| 09 09 2a 6c 68 73 20 3d | 20 64 75 70 6e 6f 64 65 |..*lhs =| dupnode|
|00003cf0| 28 72 29 3b 0d 09 09 66 | 72 65 65 5f 74 65 6d 70 |(r);...f|ree_temp|
|00003d00| 28 72 29 3b 0d 09 09 64 | 6f 5f 64 65 72 65 66 28 |(r);...d|o_deref(|
|00003d10| 29 3b 0d 09 09 69 66 20 | 28 66 69 65 6c 64 5f 6e |);...if |(field_n|
|00003d20| 75 6d 20 3d 3d 20 30 29 | 0d 09 09 09 73 65 74 5f |um == 0)|....set_|
|00003d30| 72 65 63 6f 72 64 28 66 | 69 65 6c 64 73 5f 61 72 |record(f|ields_ar|
|00003d40| 72 5b 30 5d 2d 3e 73 74 | 70 74 72 2c 20 66 69 65 |r[0]->st|ptr, fie|
|00003d50| 6c 64 73 5f 61 72 72 5b | 30 5d 2d 3e 73 74 6c 65 |lds_arr[|0]->stle|
|00003d60| 6e 29 3b 0d 09 09 66 69 | 65 6c 64 5f 6e 75 6d 20 |n);...fi|eld_num |
|00003d70| 3d 20 2d 31 3b 0d 09 09 | 72 65 74 75 72 6e 20 2a |= -1;...|return *|
|00003d80| 6c 68 73 3b 0d 0d 09 2f | 2a 20 6f 74 68 65 72 20 |lhs;.../|* other |
|00003d90| 61 73 73 69 67 6e 6d 65 | 6e 74 20 74 79 70 65 73 |assignme|nt types|
|00003da0| 20 61 72 65 20 65 61 73 | 69 65 72 20 62 65 63 61 | are eas|ier beca|
|00003db0| 75 73 65 20 74 68 65 79 | 20 61 72 65 20 6e 75 6d |use they| are num|
|00003dc0| 65 72 69 63 20 2a 2f 0d | 09 63 61 73 65 20 4e 6f |eric */.|.case No|
|00003dd0| 64 65 5f 70 72 65 69 6e | 63 72 65 6d 65 6e 74 3a |de_prein|crement:|
|00003de0| 0d 09 63 61 73 65 20 4e | 6f 64 65 5f 70 72 65 64 |..case N|ode_pred|
|00003df0| 65 63 72 65 6d 65 6e 74 | 3a 0d 09 63 61 73 65 20 |ecrement|:..case |
|00003e00| 4e 6f 64 65 5f 70 6f 73 | 74 69 6e 63 72 65 6d 65 |Node_pos|tincreme|
|00003e10| 6e 74 3a 0d 09 63 61 73 | 65 20 4e 6f 64 65 5f 70 |nt:..cas|e Node_p|
|00003e20| 6f 73 74 64 65 63 72 65 | 6d 65 6e 74 3a 0d 09 63 |ostdecre|ment:..c|
|00003e30| 61 73 65 20 4e 6f 64 65 | 5f 61 73 73 69 67 6e 5f |ase Node|_assign_|
|00003e40| 65 78 70 3a 0d 09 63 61 | 73 65 20 4e 6f 64 65 5f |exp:..ca|se Node_|
|00003e50| 61 73 73 69 67 6e 5f 74 | 69 6d 65 73 3a 0d 09 63 |assign_t|imes:..c|
|00003e60| 61 73 65 20 4e 6f 64 65 | 5f 61 73 73 69 67 6e 5f |ase Node|_assign_|
|00003e70| 71 75 6f 74 69 65 6e 74 | 3a 0d 09 63 61 73 65 20 |quotient|:..case |
|00003e80| 4e 6f 64 65 5f 61 73 73 | 69 67 6e 5f 6d 6f 64 3a |Node_ass|ign_mod:|
|00003e90| 0d 09 63 61 73 65 20 4e | 6f 64 65 5f 61 73 73 69 |..case N|ode_assi|
|00003ea0| 67 6e 5f 70 6c 75 73 3a | 0d 09 63 61 73 65 20 4e |gn_plus:|..case N|
|00003eb0| 6f 64 65 5f 61 73 73 69 | 67 6e 5f 6d 69 6e 75 73 |ode_assi|gn_minus|
|00003ec0| 3a 0d 09 09 72 65 74 75 | 72 6e 20 6f 70 5f 61 73 |:...retu|rn op_as|
|00003ed0| 73 69 67 6e 28 74 72 65 | 65 29 3b 0d 09 64 65 66 |sign(tre|e);..def|
|00003ee0| 61 75 6c 74 3a 0d 09 09 | 62 72 65 61 6b 3b 09 2f |ault:...|break;./|
|00003ef0| 2a 20 68 61 6e 64 6c 65 | 64 20 62 65 6c 6f 77 20 |* handle|d below |
|00003f00| 2a 2f 0d 09 7d 0d 0d 09 | 2f 2a 20 65 76 61 6c 75 |*/..}...|/* evalu|
|00003f10| 61 74 65 20 73 75 62 74 | 72 65 65 73 20 69 6e 20 |ate subt|rees in |
|00003f20| 6f 72 64 65 72 20 74 6f | 20 64 6f 20 62 69 6e 61 |order to| do bina|
|00003f30| 72 79 20 6f 70 65 72 61 | 74 69 6f 6e 2c 20 74 68 |ry opera|tion, th|
|00003f40| 65 6e 20 6b 65 65 70 20 | 67 6f 69 6e 67 20 2a 2f |en keep |going */|
|00003f50| 0d 09 74 31 20 3d 20 74 | 72 65 65 5f 65 76 61 6c |..t1 = t|ree_eval|
|00003f60| 28 74 72 65 65 2d 3e 6c | 6e 6f 64 65 29 3b 0d 09 |(tree->l|node);..|
|00003f70| 74 32 20 3d 20 74 72 65 | 65 5f 65 76 61 6c 28 74 |t2 = tre|e_eval(t|
|00003f80| 72 65 65 2d 3e 72 6e 6f | 64 65 29 3b 0d 0d 09 73 |ree->rno|de);...s|
|00003f90| 77 69 74 63 68 20 28 74 | 72 65 65 2d 3e 74 79 70 |witch (t|ree->typ|
|00003fa0| 65 29 20 7b 0d 09 63 61 | 73 65 20 4e 6f 64 65 5f |e) {..ca|se Node_|
|00003fb0| 63 6f 6e 63 61 74 3a 0d | 09 09 44 42 47 5f 50 28 |concat:.|..DBG_P(|
|00003fc0| 28 22 43 4f 4e 43 41 54 | 22 2c 20 74 72 65 65 29 |("CONCAT|", tree)|
|00003fd0| 29 3b 0d 09 09 74 31 20 | 3d 20 66 6f 72 63 65 5f |);...t1 |= force_|
|00003fe0| 73 74 72 69 6e 67 28 74 | 31 29 3b 0d 09 09 74 32 |string(t|1);...t2|
|00003ff0| 20 3d 20 66 6f 72 63 65 | 5f 73 74 72 69 6e 67 28 | = force|_string(|
|00004000| 74 32 29 3b 0d 0d 09 09 | 72 20 3d 20 6e 65 77 6e |t2);....|r = newn|
|00004010| 6f 64 65 28 4e 6f 64 65 | 5f 76 61 6c 29 3b 0d 09 |ode(Node|_val);..|
|00004020| 09 72 2d 3e 66 6c 61 67 | 73 20 7c 3d 20 28 53 54 |.r->flag|s |= (ST|
|00004030| 52 7c 54 45 4d 50 29 3b | 0d 09 09 72 2d 3e 73 74 |R|TEMP);|...r->st|
|00004040| 6c 65 6e 20 3d 20 74 31 | 2d 3e 73 74 6c 65 6e 20 |len = t1|->stlen |
|00004050| 2b 20 74 32 2d 3e 73 74 | 6c 65 6e 3b 0d 09 09 72 |+ t2->st|len;...r|
|00004060| 2d 3e 73 74 72 65 66 20 | 3d 20 31 3b 0d 09 09 65 |->stref |= 1;...e|
|00004070| 6d 61 6c 6c 6f 63 28 72 | 2d 3e 73 74 70 74 72 2c |malloc(r|->stptr,|
|00004080| 20 63 68 61 72 20 2a 2c | 20 72 2d 3e 73 74 6c 65 | char *,| r->stle|
|00004090| 6e 20 2b 20 31 2c 20 22 | 74 72 65 65 5f 65 76 61 |n + 1, "|tree_eva|
|000040a0| 6c 22 29 3b 0d 09 09 6d | 65 6d 63 70 79 28 72 2d |l");...m|emcpy(r-|
|000040b0| 3e 73 74 70 74 72 2c 20 | 74 31 2d 3e 73 74 70 74 |>stptr, |t1->stpt|
|000040c0| 72 2c 20 74 31 2d 3e 73 | 74 6c 65 6e 29 3b 0d 09 |r, t1->s|tlen);..|
|000040d0| 09 6d 65 6d 63 70 79 28 | 72 2d 3e 73 74 70 74 72 |.memcpy(|r->stptr|
|000040e0| 20 2b 20 74 31 2d 3e 73 | 74 6c 65 6e 2c 20 74 32 | + t1->s|tlen, t2|
|000040f0| 2d 3e 73 74 70 74 72 2c | 20 74 32 2d 3e 73 74 6c |->stptr,| t2->stl|
|00004100| 65 6e 20 2b 20 31 29 3b | 0d 09 09 66 72 65 65 5f |en + 1);|...free_|
|00004110| 74 65 6d 70 28 74 31 29 | 3b 0d 09 09 66 72 65 65 |temp(t1)|;...free|
|00004120| 5f 74 65 6d 70 28 74 32 | 29 3b 0d 09 09 72 65 74 |_temp(t2|);...ret|
|00004130| 75 72 6e 20 72 3b 0d 0d | 09 63 61 73 65 20 4e 6f |urn r;..|.case No|
|00004140| 64 65 5f 67 65 71 3a 0d | 09 63 61 73 65 20 4e 6f |de_geq:.|.case No|
|00004150| 64 65 5f 6c 65 71 3a 0d | 09 63 61 73 65 20 4e 6f |de_leq:.|.case No|
|00004160| 64 65 5f 67 72 65 61 74 | 65 72 3a 0d 09 63 61 73 |de_great|er:..cas|
|00004170| 65 20 4e 6f 64 65 5f 6c | 65 73 73 3a 0d 09 63 61 |e Node_l|ess:..ca|
|00004180| 73 65 20 4e 6f 64 65 5f | 6e 6f 74 65 71 75 61 6c |se Node_|notequal|
|00004190| 3a 0d 09 63 61 73 65 20 | 4e 6f 64 65 5f 65 71 75 |:..case |Node_equ|
|000041a0| 61 6c 3a 0d 09 09 64 69 | 20 3d 20 63 6d 70 5f 6e |al:...di| = cmp_n|
|000041b0| 6f 64 65 73 28 74 31 2c | 20 74 32 29 3b 0d 09 09 |odes(t1,| t2);...|
|000041c0| 66 72 65 65 5f 74 65 6d | 70 28 74 31 29 3b 0d 09 |free_tem|p(t1);..|
|000041d0| 09 66 72 65 65 5f 74 65 | 6d 70 28 74 32 29 3b 0d |.free_te|mp(t2);.|
|000041e0| 09 09 73 77 69 74 63 68 | 20 28 74 72 65 65 2d 3e |..switch| (tree->|
|000041f0| 74 79 70 65 29 20 7b 0d | 09 09 63 61 73 65 20 4e |type) {.|..case N|
|00004200| 6f 64 65 5f 65 71 75 61 | 6c 3a 0d 09 09 09 44 42 |ode_equa|l:....DB|
|00004210| 47 5f 50 28 28 22 45 51 | 55 41 4c 22 2c 20 74 72 |G_P(("EQ|UAL", tr|
|00004220| 65 65 29 29 3b 0d 09 09 | 09 72 65 74 75 72 6e 20 |ee));...|.return |
|00004230| 74 6d 70 5f 6e 75 6d 62 | 65 72 28 28 41 57 4b 4e |tmp_numb|er((AWKN|
|00004240| 55 4d 29 20 28 64 69 20 | 3d 3d 20 30 29 29 3b 0d |UM) (di |== 0));.|
|00004250| 09 09 63 61 73 65 20 4e | 6f 64 65 5f 6e 6f 74 65 |..case N|ode_note|
|00004260| 71 75 61 6c 3a 0d 09 09 | 09 44 42 47 5f 50 28 28 |qual:...|.DBG_P((|
|00004270| 22 4e 4f 54 5f 45 51 55 | 41 4c 22 2c 20 74 72 65 |"NOT_EQU|AL", tre|
|00004280| 65 29 29 3b 0d 09 09 09 | 72 65 74 75 72 6e 20 74 |e));....|return t|
|00004290| 6d 70 5f 6e 75 6d 62 65 | 72 28 28 41 57 4b 4e 55 |mp_numbe|r((AWKNU|
|000042a0| 4d 29 20 28 64 69 20 21 | 3d 20 30 29 29 3b 0d 09 |M) (di !|= 0));..|
|000042b0| 09 63 61 73 65 20 4e 6f | 64 65 5f 6c 65 73 73 3a |.case No|de_less:|
|000042c0| 0d 09 09 09 44 42 47 5f | 50 28 28 22 4c 45 53 53 |....DBG_|P(("LESS|
|000042d0| 5f 54 48 41 4e 22 2c 20 | 74 72 65 65 29 29 3b 0d |_THAN", |tree));.|
|000042e0| 09 09 09 72 65 74 75 72 | 6e 20 74 6d 70 5f 6e 75 |...retur|n tmp_nu|
|000042f0| 6d 62 65 72 28 28 41 57 | 4b 4e 55 4d 29 20 28 64 |mber((AW|KNUM) (d|
|00004300| 69 20 3c 20 30 29 29 3b | 0d 09 09 63 61 73 65 20 |i < 0));|...case |
|00004310| 4e 6f 64 65 5f 67 72 65 | 61 74 65 72 3a 0d 09 09 |Node_gre|ater:...|
|00004320| 09 44 42 47 5f 50 28 28 | 22 47 52 45 41 54 45 52 |.DBG_P((|"GREATER|
|00004330| 5f 54 48 41 4e 22 2c 20 | 74 72 65 65 29 29 3b 0d |_THAN", |tree));.|
|00004340| 09 09 09 72 65 74 75 72 | 6e 20 74 6d 70 5f 6e 75 |...retur|n tmp_nu|
|00004350| 6d 62 65 72 28 28 41 57 | 4b 4e 55 4d 29 20 28 64 |mber((AW|KNUM) (d|
|00004360| 69 20 3e 20 30 29 29 3b | 0d 09 09 63 61 73 65 20 |i > 0));|...case |
|00004370| 4e 6f 64 65 5f 6c 65 71 | 3a 0d 09 09 09 44 42 47 |Node_leq|:....DBG|
|00004380| 5f 50 28 28 22 4c 45 53 | 53 5f 54 48 41 4e 5f 45 |_P(("LES|S_THAN_E|
|00004390| 51 55 41 4c 22 2c 20 74 | 72 65 65 29 29 3b 0d 09 |QUAL", t|ree));..|
|000043a0| 09 09 72 65 74 75 72 6e | 20 74 6d 70 5f 6e 75 6d |..return| tmp_num|
|000043b0| 62 65 72 28 28 41 57 4b | 4e 55 4d 29 20 28 64 69 |ber((AWK|NUM) (di|
|000043c0| 20 3c 3d 20 30 29 29 3b | 0d 09 09 63 61 73 65 20 | <= 0));|...case |
|000043d0| 4e 6f 64 65 5f 67 65 71 | 3a 0d 09 09 09 44 42 47 |Node_geq|:....DBG|
|000043e0| 5f 50 28 28 22 47 52 45 | 41 54 45 52 5f 54 48 41 |_P(("GRE|ATER_THA|
|000043f0| 4e 5f 45 51 55 41 4c 22 | 2c 20 74 72 65 65 29 29 |N_EQUAL"|, tree))|
|00004400| 3b 0d 09 09 09 72 65 74 | 75 72 6e 20 74 6d 70 5f |;....ret|urn tmp_|
|00004410| 6e 75 6d 62 65 72 28 28 | 41 57 4b 4e 55 4d 29 20 |number((|AWKNUM) |
|00004420| 28 64 69 20 3e 3d 20 30 | 29 29 3b 0d 09 09 64 65 |(di >= 0|));...de|
|00004430| 66 61 75 6c 74 3a 0d 09 | 09 09 63 61 6e 74 5f 68 |fault:..|..cant_h|
|00004440| 61 70 70 65 6e 28 29 3b | 0d 09 09 7d 0d 09 09 62 |appen();|...}...b|
|00004450| 72 65 61 6b 3b 0d 09 64 | 65 66 61 75 6c 74 3a 0d |reak;..d|efault:.|
|00004460| 09 09 62 72 65 61 6b 3b | 09 2f 2a 20 68 61 6e 64 |..break;|./* hand|
|00004470| 6c 65 64 20 62 65 6c 6f | 77 20 2a 2f 0d 09 7d 0d |led belo|w */..}.|
|00004480| 0d 09 28 76 6f 69 64 29 | 20 66 6f 72 63 65 5f 6e |..(void)| force_n|
|00004490| 75 6d 62 65 72 28 74 31 | 29 3b 0d 09 28 76 6f 69 |umber(t1|);..(voi|
|000044a0| 64 29 20 66 6f 72 63 65 | 5f 6e 75 6d 62 65 72 28 |d) force|_number(|
|000044b0| 74 32 29 3b 0d 0d 09 73 | 77 69 74 63 68 20 28 74 |t2);...s|witch (t|
|000044c0| 72 65 65 2d 3e 74 79 70 | 65 29 20 7b 0d 09 63 61 |ree->typ|e) {..ca|
|000044d0| 73 65 20 4e 6f 64 65 5f | 65 78 70 3a 0d 09 09 44 |se Node_|exp:...D|
|000044e0| 42 47 5f 50 28 28 22 45 | 58 50 4f 4e 45 4e 54 22 |BG_P(("E|XPONENT"|
|000044f0| 2c 20 74 72 65 65 29 29 | 3b 0d 09 09 69 66 20 28 |, tree))|;...if (|
|00004500| 28 6c 78 20 3d 20 74 32 | 2d 3e 6e 75 6d 62 72 29 |(lx = t2|->numbr)|
|00004510| 20 3d 3d 20 74 32 2d 3e | 6e 75 6d 62 72 29 20 7b | == t2->|numbr) {|
|00004520| 09 2f 2a 20 69 6e 74 65 | 67 65 72 20 65 78 70 6f |./* inte|ger expo|
|00004530| 6e 65 6e 74 20 2a 2f 0d | 09 09 09 69 66 20 28 6c |nent */.|...if (l|
|00004540| 78 20 3d 3d 20 30 29 0d | 09 09 09 09 78 20 3d 20 |x == 0).|....x = |
|00004550| 31 3b 0d 09 09 09 65 6c | 73 65 20 69 66 20 28 6c |1;....el|se if (l|
|00004560| 78 20 3d 3d 20 31 29 0d | 09 09 09 09 78 20 3d 20 |x == 1).|....x = |
|00004570| 74 31 2d 3e 6e 75 6d 62 | 72 3b 0d 09 09 09 65 6c |t1->numb|r;....el|
|00004580| 73 65 20 7b 0d 09 09 09 | 09 2f 2a 20 64 6f 69 6e |se {....|./* doin|
|00004590| 67 20 69 74 20 74 68 69 | 73 20 77 61 79 20 73 68 |g it thi|s way sh|
|000045a0| 6f 75 6c 64 20 62 65 20 | 6d 6f 72 65 20 70 72 65 |ould be |more pre|
|000045b0| 63 69 73 65 20 2a 2f 0d | 09 09 09 09 66 6f 72 20 |cise */.|....for |
|000045c0| 28 78 20 3d 20 78 32 20 | 3d 20 74 31 2d 3e 6e 75 |(x = x2 |= t1->nu|
|000045d0| 6d 62 72 3b 20 2d 2d 6c | 78 3b 20 29 0d 09 09 09 |mbr; --l|x; )....|
|000045e0| 09 09 78 20 2a 3d 20 78 | 32 3b 0d 09 09 09 7d 0d |..x *= x|2;....}.|
|000045f0| 09 09 7d 20 65 6c 73 65 | 0d 09 09 09 78 20 3d 20 |..} else|....x = |
|00004600| 70 6f 77 28 28 64 6f 75 | 62 6c 65 29 20 74 31 2d |pow((dou|ble) t1-|
|00004610| 3e 6e 75 6d 62 72 2c 20 | 28 64 6f 75 62 6c 65 29 |>numbr, |(double)|
|00004620| 20 74 32 2d 3e 6e 75 6d | 62 72 29 3b 0d 09 09 66 | t2->num|br);...f|
|00004630| 72 65 65 5f 74 65 6d 70 | 28 74 31 29 3b 0d 09 09 |ree_temp|(t1);...|
|00004640| 66 72 65 65 5f 74 65 6d | 70 28 74 32 29 3b 0d 09 |free_tem|p(t2);..|
|00004650| 09 72 65 74 75 72 6e 20 | 74 6d 70 5f 6e 75 6d 62 |.return |tmp_numb|
|00004660| 65 72 28 78 29 3b 0d 0d | 09 63 61 73 65 20 4e 6f |er(x);..|.case No|
|00004670| 64 65 5f 74 69 6d 65 73 | 3a 0d 09 09 44 42 47 5f |de_times|:...DBG_|
|00004680| 50 28 28 22 4d 55 4c 54 | 22 2c 20 74 72 65 65 29 |P(("MULT|", tree)|
|00004690| 29 3b 0d 09 09 78 20 3d | 20 74 31 2d 3e 6e 75 6d |);...x =| t1->num|
|000046a0| 62 72 20 2a 20 74 32 2d | 3e 6e 75 6d 62 72 3b 0d |br * t2-|>numbr;.|
|000046b0| 09 09 66 72 65 65 5f 74 | 65 6d 70 28 74 31 29 3b |..free_t|emp(t1);|
|000046c0| 0d 09 09 66 72 65 65 5f | 74 65 6d 70 28 74 32 29 |...free_|temp(t2)|
|000046d0| 3b 0d 09 09 72 65 74 75 | 72 6e 20 74 6d 70 5f 6e |;...retu|rn tmp_n|
|000046e0| 75 6d 62 65 72 28 78 29 | 3b 0d 0d 09 63 61 73 65 |umber(x)|;...case|
|000046f0| 20 4e 6f 64 65 5f 71 75 | 6f 74 69 65 6e 74 3a 0d | Node_qu|otient:.|
|00004700| 09 09 44 42 47 5f 50 28 | 28 22 44 49 56 49 44 45 |..DBG_P(|("DIVIDE|
|00004710| 22 2c 20 74 72 65 65 29 | 29 3b 0d 09 09 78 20 3d |", tree)|);...x =|
|00004720| 20 74 32 2d 3e 6e 75 6d | 62 72 3b 0d 09 09 66 72 | t2->num|br;...fr|
|00004730| 65 65 5f 74 65 6d 70 28 | 74 32 29 3b 0d 09 09 69 |ee_temp(|t2);...i|
|00004740| 66 20 28 78 20 3d 3d 20 | 28 41 57 4b 4e 55 4d 29 |f (x == |(AWKNUM)|
|00004750| 20 30 29 0d 09 09 09 66 | 61 74 61 6c 28 22 64 69 | 0)....f|atal("di|
|00004760| 76 69 73 69 6f 6e 20 62 | 79 20 7a 65 72 6f 20 61 |vision b|y zero a|
|00004770| 74 74 65 6d 70 74 65 64 | 22 29 3b 0d 09 09 09 2f |ttempted|");..../|
|00004780| 2a 20 4e 4f 54 52 45 41 | 43 48 45 44 20 2a 2f 0d |* NOTREA|CHED */.|
|00004790| 09 09 65 6c 73 65 20 7b | 0d 09 09 09 78 20 3d 20 |..else {|....x = |
|000047a0| 74 31 2d 3e 6e 75 6d 62 | 72 20 2f 20 78 3b 0d 09 |t1->numb|r / x;..|
|000047b0| 09 09 66 72 65 65 5f 74 | 65 6d 70 28 74 31 29 3b |..free_t|emp(t1);|
|000047c0| 0d 09 09 09 72 65 74 75 | 72 6e 20 74 6d 70 5f 6e |....retu|rn tmp_n|
|000047d0| 75 6d 62 65 72 28 78 29 | 3b 0d 09 09 7d 0d 0d 09 |umber(x)|;...}...|
|000047e0| 63 61 73 65 20 4e 6f 64 | 65 5f 6d 6f 64 3a 0d 09 |case Nod|e_mod:..|
|000047f0| 09 44 42 47 5f 50 28 28 | 22 4d 4f 44 55 4c 55 53 |.DBG_P((|"MODULUS|
|00004800| 22 2c 20 74 72 65 65 29 | 29 3b 0d 09 09 78 20 3d |", tree)|);...x =|
|00004810| 20 74 32 2d 3e 6e 75 6d | 62 72 3b 0d 09 09 66 72 | t2->num|br;...fr|
|00004820| 65 65 5f 74 65 6d 70 28 | 74 32 29 3b 0d 09 09 69 |ee_temp(|t2);...i|
|00004830| 66 20 28 78 20 3d 3d 20 | 28 41 57 4b 4e 55 4d 29 |f (x == |(AWKNUM)|
|00004840| 20 30 29 0d 09 09 09 66 | 61 74 61 6c 28 22 64 69 | 0)....f|atal("di|
|00004850| 76 69 73 69 6f 6e 20 62 | 79 20 7a 65 72 6f 20 61 |vision b|y zero a|
|00004860| 74 74 65 6d 70 74 65 64 | 20 69 6e 20 6d 6f 64 22 |ttempted| in mod"|
|00004870| 29 3b 0d 09 09 09 2f 2a | 20 4e 4f 54 52 45 41 43 |);..../*| NOTREAC|
|00004880| 48 45 44 20 2a 2f 0d 09 | 09 6c 78 20 3d 20 74 31 |HED */..|.lx = t1|
|00004890| 2d 3e 6e 75 6d 62 72 20 | 2f 20 78 3b 09 2f 2a 20 |->numbr |/ x;./* |
|000048a0| 61 73 73 69 67 6e 6d 65 | 6e 74 20 74 6f 20 6c 6f |assignme|nt to lo|
|000048b0| 6e 67 20 74 72 75 6e 63 | 61 74 65 73 20 2a 2f 0d |ng trunc|ates */.|
|000048c0| 09 09 78 32 20 3d 20 6c | 78 20 2a 20 78 3b 0d 09 |..x2 = l|x * x;..|
|000048d0| 09 78 20 3d 20 74 31 2d | 3e 6e 75 6d 62 72 20 2d |.x = t1-|>numbr -|
|000048e0| 20 78 32 3b 0d 09 09 66 | 72 65 65 5f 74 65 6d 70 | x2;...f|ree_temp|
|000048f0| 28 74 31 29 3b 0d 09 09 | 72 65 74 75 72 6e 20 74 |(t1);...|return t|
|00004900| 6d 70 5f 6e 75 6d 62 65 | 72 28 78 29 3b 0d 0d 09 |mp_numbe|r(x);...|
|00004910| 63 61 73 65 20 4e 6f 64 | 65 5f 70 6c 75 73 3a 0d |case Nod|e_plus:.|
|00004920| 09 09 44 42 47 5f 50 28 | 28 22 50 4c 55 53 22 2c |..DBG_P(|("PLUS",|
|00004930| 20 74 72 65 65 29 29 3b | 0d 09 09 78 20 3d 20 74 | tree));|...x = t|
|00004940| 31 2d 3e 6e 75 6d 62 72 | 20 2b 20 74 32 2d 3e 6e |1->numbr| + t2->n|
|00004950| 75 6d 62 72 3b 0d 09 09 | 66 72 65 65 5f 74 65 6d |umbr;...|free_tem|
|00004960| 70 28 74 31 29 3b 0d 09 | 09 66 72 65 65 5f 74 65 |p(t1);..|.free_te|
|00004970| 6d 70 28 74 32 29 3b 0d | 09 09 72 65 74 75 72 6e |mp(t2);.|..return|
|00004980| 20 74 6d 70 5f 6e 75 6d | 62 65 72 28 78 29 3b 0d | tmp_num|ber(x);.|
|00004990| 0d 09 63 61 73 65 20 4e | 6f 64 65 5f 6d 69 6e 75 |..case N|ode_minu|
|000049a0| 73 3a 0d 09 09 44 42 47 | 5f 50 28 28 22 4d 49 4e |s:...DBG|_P(("MIN|
|000049b0| 55 53 22 2c 20 74 72 65 | 65 29 29 3b 0d 09 09 78 |US", tre|e));...x|
|000049c0| 20 3d 20 74 31 2d 3e 6e | 75 6d 62 72 20 2d 20 74 | = t1->n|umbr - t|
|000049d0| 32 2d 3e 6e 75 6d 62 72 | 3b 0d 09 09 66 72 65 65 |2->numbr|;...free|
|000049e0| 5f 74 65 6d 70 28 74 31 | 29 3b 0d 09 09 66 72 65 |_temp(t1|);...fre|
|000049f0| 65 5f 74 65 6d 70 28 74 | 32 29 3b 0d 09 09 72 65 |e_temp(t|2);...re|
|00004a00| 74 75 72 6e 20 74 6d 70 | 5f 6e 75 6d 62 65 72 28 |turn tmp|_number(|
|00004a10| 78 29 3b 0d 0d 09 64 65 | 66 61 75 6c 74 3a 0d 09 |x);...de|fault:..|
|00004a20| 09 66 61 74 61 6c 28 22 | 69 6c 6c 65 67 61 6c 20 |.fatal("|illegal |
|00004a30| 74 79 70 65 20 28 25 64 | 29 20 69 6e 20 74 72 65 |type (%d|) in tre|
|00004a40| 65 5f 65 76 61 6c 22 2c | 20 74 72 65 65 2d 3e 74 |e_eval",| tree->t|
|00004a50| 79 70 65 29 3b 0d 09 7d | 0d 09 72 65 74 75 72 6e |ype);..}|..return|
|00004a60| 20 30 3b 0d 7d 0d 0d 2f | 2a 0d 20 2a 20 54 68 69 | 0;.}../|*. * Thi|
|00004a70| 73 20 6d 61 6b 65 73 20 | 6e 75 6d 65 72 69 63 20 |s makes |numeric |
|00004a80| 6f 70 65 72 61 74 69 6f | 6e 73 20 73 6c 69 67 68 |operatio|ns sligh|
|00004a90| 74 6c 79 20 6d 6f 72 65 | 20 65 66 66 69 63 69 65 |tly more| efficie|
|00004aa0| 6e 74 2e 20 4a 75 73 74 | 20 63 68 61 6e 67 65 20 |nt. Just| change |
|00004ab0| 74 68 65 0d 20 2a 20 76 | 61 6c 75 65 20 6f 66 20 |the. * v|alue of |
|00004ac0| 61 20 6e 75 6d 65 72 69 | 63 20 6e 6f 64 65 2c 20 |a numeri|c node, |
|00004ad0| 69 66 20 70 6f 73 73 69 | 62 6c 65 20 0d 20 2a 2f |if possi|ble . */|
|00004ae0| 0d 76 6f 69 64 20 61 73 | 73 69 67 6e 5f 6e 75 6d |.void as|sign_num|
|00004af0| 62 65 72 28 4e 4f 44 45 | 20 2a 2a 70 74 72 2c 20 |ber(NODE| **ptr, |
|00004b00| 41 57 4b 4e 55 4d 20 76 | 61 6c 75 65 29 0d 7b 0d |AWKNUM v|alue).{.|
|00004b10| 09 65 78 74 65 72 6e 20 | 4e 4f 44 45 20 2a 64 65 |.extern |NODE *de|
|00004b20| 72 65 66 3b 0d 09 72 65 | 67 69 73 74 65 72 20 4e |ref;..re|gister N|
|00004b30| 4f 44 45 20 2a 6e 20 3d | 20 2a 70 74 72 3b 0d 0d |ODE *n =| *ptr;..|
|00004b40| 23 69 66 64 65 66 20 44 | 45 42 55 47 0d 09 69 66 |#ifdef D|EBUG..if|
|00004b50| 20 28 6e 2d 3e 74 79 70 | 65 20 21 3d 20 4e 6f 64 | (n->typ|e != Nod|
|00004b60| 65 5f 76 61 6c 29 0d 09 | 09 63 61 6e 74 5f 68 61 |e_val)..|.cant_ha|
|00004b70| 70 70 65 6e 28 29 3b 0d | 23 65 6e 64 69 66 0d 09 |ppen();.|#endif..|
|00004b80| 69 66 20 28 6e 20 3d 3d | 20 4e 6e 75 6c 6c 5f 73 |if (n ==| Nnull_s|
|00004b90| 74 72 69 6e 67 29 20 7b | 0d 09 09 2a 70 74 72 20 |tring) {|...*ptr |
|00004ba0| 3d 20 6d 61 6b 65 5f 6e | 75 6d 62 65 72 28 76 61 |= make_n|umber(va|
|00004bb0| 6c 75 65 29 3b 0d 09 09 | 64 65 72 65 66 20 3d 20 |lue);...|deref = |
|00004bc0| 30 3b 0d 09 09 72 65 74 | 75 72 6e 3b 0d 09 7d 0d |0;...ret|urn;..}.|
|00004bd0| 09 69 66 20 28 6e 2d 3e | 73 74 72 65 66 20 3e 20 |.if (n->|stref > |
|00004be0| 31 29 20 7b 0d 09 09 2a | 70 74 72 20 3d 20 6d 61 |1) {...*|ptr = ma|
|00004bf0| 6b 65 5f 6e 75 6d 62 65 | 72 28 76 61 6c 75 65 29 |ke_numbe|r(value)|
|00004c00| 3b 0d 09 09 72 65 74 75 | 72 6e 3b 0d 09 7d 0d 09 |;...retu|rn;..}..|
|00004c10| 69 66 20 28 28 6e 2d 3e | 66 6c 61 67 73 20 26 20 |if ((n->|flags & |
|00004c20| 53 54 52 29 20 26 26 20 | 28 6e 2d 3e 66 6c 61 67 |STR) && |(n->flag|
|00004c30| 73 20 26 20 28 4d 41 4c | 4c 4f 43 7c 54 45 4d 50 |s & (MAL|LOC|TEMP|
|00004c40| 29 29 29 0d 09 09 66 72 | 65 65 28 6e 2d 3e 73 74 |)))...fr|ee(n->st|
|00004c50| 70 74 72 29 3b 0d 09 6e | 2d 3e 6e 75 6d 62 72 20 |ptr);..n|->numbr |
|00004c60| 3d 20 76 61 6c 75 65 3b | 0d 09 6e 2d 3e 66 6c 61 |= value;|..n->fla|
|00004c70| 67 73 20 7c 3d 20 28 4e | 55 4d 7c 4e 55 4d 45 52 |gs |= (N|UM|NUMER|
|00004c80| 49 43 29 3b 0d 09 6e 2d | 3e 66 6c 61 67 73 20 26 |IC);..n-|>flags &|
|00004c90| 3d 20 7e 53 54 52 3b 0d | 09 6e 2d 3e 73 74 72 65 |= ~STR;.|.n->stre|
|00004ca0| 66 20 3d 20 30 3b 0d 09 | 64 65 72 65 66 20 3d 20 |f = 0;..|deref = |
|00004cb0| 30 3b 0d 7d 0d 0d 0d 2f | 2a 20 49 73 20 54 52 45 |0;.}.../|* Is TRE|
|00004cc0| 45 20 74 72 75 65 20 6f | 72 20 66 61 6c 73 65 3f |E true o|r false?|
|00004cd0| 20 20 52 65 74 75 72 6e | 73 20 30 3d 3d 66 61 6c | Return|s 0==fal|
|00004ce0| 73 65 2c 20 6e 6f 6e 2d | 7a 65 72 6f 3d 3d 74 72 |se, non-|zero==tr|
|00004cf0| 75 65 20 2a 2f 0d 73 74 | 61 74 69 63 20 73 68 6f |ue */.st|atic sho|
|00004d00| 72 74 20 65 76 61 6c 5f | 63 6f 6e 64 69 74 69 6f |rt eval_|conditio|
|00004d10| 6e 28 4e 4f 44 45 20 2a | 74 72 65 65 29 0d 7b 0d |n(NODE *|tree).{.|
|00004d20| 09 72 65 67 69 73 74 65 | 72 20 4e 4f 44 45 20 2a |.registe|r NODE *|
|00004d30| 74 31 3b 0d 09 73 68 6f | 72 74 20 72 65 74 3b 0d |t1;..sho|rt ret;.|
|00004d40| 0d 09 69 66 20 28 74 72 | 65 65 20 3d 3d 20 4e 55 |..if (tr|ee == NU|
|00004d50| 4c 4c 29 09 2f 2a 20 4e | 75 6c 6c 20 74 72 65 65 |LL)./* N|ull tree|
|00004d60| 73 20 61 72 65 20 74 68 | 65 20 65 61 73 69 65 73 |s are th|e easies|
|00004d70| 74 20 6b 69 6e 64 73 20 | 2a 2f 0d 09 09 72 65 74 |t kinds |*/...ret|
|00004d80| 75 72 6e 20 31 3b 0d 09 | 69 66 20 28 74 72 65 65 |urn 1;..|if (tree|
|00004d90| 2d 3e 74 79 70 65 20 3d | 3d 20 4e 6f 64 65 5f 6c |->type =|= Node_l|
|00004da0| 69 6e 65 5f 72 61 6e 67 | 65 29 20 7b 0d 09 09 2f |ine_rang|e) {.../|
|00004db0| 2a 0d 09 09 20 2a 20 4e | 6f 64 65 5f 6c 69 6e 65 |*... * N|ode_line|
|00004dc0| 5f 72 61 6e 67 65 20 69 | 73 20 6b 69 6e 64 20 6f |_range i|s kind o|
|00004dd0| 66 20 6c 69 6b 65 20 4e | 6f 64 65 5f 6d 61 74 63 |f like N|ode_matc|
|00004de0| 68 2c 20 45 58 43 45 50 | 54 3a 20 74 68 65 0d 09 |h, EXCEP|T: the..|
|00004df0| 09 20 2a 20 6c 6e 6f 64 | 65 20 66 69 65 6c 64 20 |. * lnod|e field |
|00004e00| 28 6d 6f 72 65 20 70 72 | 6f 70 65 72 6c 79 2c 20 |(more pr|operly, |
|00004e10| 74 68 65 20 63 6f 6e 64 | 70 61 69 72 20 66 69 65 |the cond|pair fie|
|00004e20| 6c 64 29 20 69 73 20 61 | 20 6e 6f 64 65 0d 09 09 |ld) is a| node...|
|00004e30| 20 2a 20 6f 66 20 61 20 | 4e 6f 64 65 5f 63 6f 6e | * of a |Node_con|
|00004e40| 64 5f 70 61 69 72 3b 20 | 77 68 65 74 68 65 72 20 |d_pair; |whether |
|00004e50| 77 65 20 65 76 61 6c 75 | 61 74 65 20 74 68 65 20 |we evalu|ate the |
|00004e60| 6c 6e 6f 64 65 20 6f 66 | 20 74 68 61 74 0d 09 09 |lnode of| that...|
|00004e70| 20 2a 20 6e 6f 64 65 20 | 6f 72 20 74 68 65 20 72 | * node |or the r|
|00004e80| 6e 6f 64 65 20 64 65 70 | 65 6e 64 73 20 6f 6e 20 |node dep|ends on |
|00004e90| 74 68 65 20 74 72 69 67 | 67 65 72 65 64 20 77 6f |the trig|gered wo|
|00004ea0| 72 64 2e 20 20 4d 6f 72 | 65 0d 09 09 20 2a 20 70 |rd. Mor|e... * p|
|00004eb0| 72 65 63 69 73 65 6c 79 | 3a 20 20 69 66 20 77 65 |recisely|: if we|
|00004ec0| 20 61 72 65 20 6e 6f 74 | 20 79 65 74 20 74 72 69 | are not| yet tri|
|00004ed0| 67 67 65 72 65 64 2c 20 | 77 65 20 74 72 65 65 5f |ggered, |we tree_|
|00004ee0| 65 76 61 6c 20 74 68 65 | 0d 09 09 20 2a 20 6c 6e |eval the|... * ln|
|00004ef0| 6f 64 65 3b 20 69 66 20 | 74 68 61 74 20 72 65 74 |ode; if |that ret|
|00004f00| 75 72 6e 73 20 74 72 75 | 65 2c 20 77 65 20 73 65 |urns tru|e, we se|
|00004f10| 74 20 74 68 65 20 74 72 | 69 67 67 65 72 65 64 20 |t the tr|iggered |
|00004f20| 77 6f 72 64 2e 20 0d 09 | 09 20 2a 20 49 66 20 77 |word. ..|. * If w|
|00004f30| 65 20 61 72 65 20 74 72 | 69 67 67 65 72 65 64 20 |e are tr|iggered |
|00004f40| 28 6e 6f 74 20 45 4c 53 | 45 20 49 46 2c 20 6e 6f |(not ELS|E IF, no|
|00004f50| 74 65 29 2c 20 77 65 20 | 74 72 65 65 5f 65 76 61 |te), we |tree_eva|
|00004f60| 6c 20 74 68 65 0d 09 09 | 20 2a 20 72 6e 6f 64 65 |l the...| * rnode|
|00004f70| 2c 20 63 6c 65 61 72 20 | 74 72 69 67 67 65 72 65 |, clear |triggere|
|00004f80| 64 20 69 66 20 69 74 20 | 73 75 63 63 65 65 64 73 |d if it |succeeds|
|00004f90| 2c 20 61 6e 64 20 70 65 | 72 66 6f 72 6d 20 6f 75 |, and pe|rform ou|
|00004fa0| 72 0d 09 09 20 2a 20 61 | 63 74 69 6f 6e 20 28 72 |r... * a|ction (r|
|00004fb0| 65 67 61 72 64 6c 65 73 | 73 20 6f 66 20 73 75 63 |egardles|s of suc|
|00004fc0| 63 65 73 73 20 6f 72 20 | 66 61 69 6c 75 72 65 29 |cess or |failure)|
|00004fd0| 2e 20 20 57 65 20 77 61 | 6e 74 20 74 6f 20 62 65 |. We wa|nt to be|
|00004fe0| 0d 09 09 20 2a 20 61 62 | 6c 65 20 74 6f 20 62 65 |... * ab|le to be|
|00004ff0| 67 69 6e 20 61 6e 64 20 | 65 6e 64 20 6f 6e 20 61 |gin and |end on a|
|00005000| 20 73 69 6e 67 6c 65 20 | 69 6e 70 75 74 20 72 65 | single |input re|
|00005010| 63 6f 72 64 2c 20 73 6f | 20 74 68 69 73 0d 09 09 |cord, so| this...|
|00005020| 20 2a 20 69 73 6e 27 74 | 20 61 6e 20 45 4c 53 45 | * isn't| an ELSE|
|00005030| 20 49 46 2c 20 61 73 20 | 6e 6f 74 65 64 20 61 62 | IF, as |noted ab|
|00005040| 6f 76 65 2e 0d 09 09 20 | 2a 2f 0d 09 09 69 66 20 |ove.... |*/...if |
|00005050| 28 21 74 72 65 65 2d 3e | 74 72 69 67 67 65 72 65 |(!tree->|triggere|
|00005060| 64 29 0d 09 09 09 69 66 | 20 28 21 65 76 61 6c 5f |d)....if| (!eval_|
|00005070| 63 6f 6e 64 69 74 69 6f | 6e 28 74 72 65 65 2d 3e |conditio|n(tree->|
|00005080| 63 6f 6e 64 70 61 69 72 | 2d 3e 6c 6e 6f 64 65 29 |condpair|->lnode)|
|00005090| 29 0d 09 09 09 09 72 65 | 74 75 72 6e 20 30 3b 0d |).....re|turn 0;.|
|000050a0| 09 09 09 65 6c 73 65 0d | 09 09 09 09 74 72 65 65 |...else.|....tree|
|000050b0| 2d 3e 74 72 69 67 67 65 | 72 65 64 20 3d 20 31 3b |->trigge|red = 1;|
|000050c0| 0d 09 09 2f 2a 20 45 6c | 73 65 20 77 65 20 61 72 |.../* El|se we ar|
|000050d0| 65 20 74 72 69 67 67 65 | 72 65 64 20 2a 2f 0d 09 |e trigge|red */..|
|000050e0| 09 69 66 20 28 65 76 61 | 6c 5f 63 6f 6e 64 69 74 |.if (eva|l_condit|
|000050f0| 69 6f 6e 28 74 72 65 65 | 2d 3e 63 6f 6e 64 70 61 |ion(tree|->condpa|
|00005100| 69 72 2d 3e 72 6e 6f 64 | 65 29 29 0d 09 09 09 74 |ir->rnod|e))....t|
|00005110| 72 65 65 2d 3e 74 72 69 | 67 67 65 72 65 64 20 3d |ree->tri|ggered =|
|00005120| 20 30 3b 0d 09 09 72 65 | 74 75 72 6e 20 31 3b 0d | 0;...re|turn 1;.|
|00005130| 09 7d 0d 0d 09 2f 2a 0d | 09 20 2a 20 43 6f 75 6c |.}.../*.|. * Coul|
|00005140| 64 20 6a 75 73 74 20 62 | 65 20 4a 2e 72 61 6e 64 |d just b|e J.rand|
|00005150| 6f 6d 20 65 78 70 72 65 | 73 73 69 6f 6e 2e 20 69 |om expre|ssion. i|
|00005160| 6e 20 77 68 69 63 68 20 | 63 61 73 65 2c 20 6e 75 |n which |case, nu|
|00005170| 6c 6c 20 61 6e 64 20 30 | 20 61 72 65 0d 09 20 2a |ll and 0| are.. *|
|00005180| 20 66 61 6c 73 65 2c 20 | 61 6e 79 74 68 69 6e 67 | false, |anything|
|00005190| 20 65 6c 73 65 20 69 73 | 20 74 72 75 65 20 0d 09 | else is| true ..|
|000051a0| 20 2a 2f 0d 0d 09 74 31 | 20 3d 20 74 72 65 65 5f | */...t1| = tree_|
|000051b0| 65 76 61 6c 28 74 72 65 | 65 29 3b 0d 09 69 66 20 |eval(tre|e);..if |
|000051c0| 28 74 31 2d 3e 66 6c 61 | 67 73 20 26 20 4e 55 4d |(t1->fla|gs & NUM|
|000051d0| 45 52 49 43 29 0d 09 09 | 72 65 74 20 3d 20 74 31 |ERIC)...|ret = t1|
|000051e0| 2d 3e 6e 75 6d 62 72 20 | 21 3d 20 30 2e 30 3b 0d |->numbr |!= 0.0;.|
|000051f0| 09 65 6c 73 65 0d 09 09 | 72 65 74 20 3d 20 74 31 |.else...|ret = t1|
|00005200| 2d 3e 73 74 6c 65 6e 20 | 21 3d 20 30 3b 0d 09 66 |->stlen |!= 0;..f|
|00005210| 72 65 65 5f 74 65 6d 70 | 28 74 31 29 3b 0d 09 72 |ree_temp|(t1);..r|
|00005220| 65 74 75 72 6e 20 72 65 | 74 3b 0d 7d 0d 0d 73 68 |eturn re|t;.}..sh|
|00005230| 6f 72 74 20 63 6d 70 5f | 6e 6f 64 65 73 28 4e 4f |ort cmp_|nodes(NO|
|00005240| 44 45 20 2a 74 31 2c 20 | 4e 4f 44 45 20 2a 74 32 |DE *t1, |NODE *t2|
|00005250| 29 0d 7b 0d 09 41 57 4b | 4e 55 4d 20 64 3b 0d 09 |).{..AWK|NUM d;..|
|00005260| 41 57 4b 4e 55 4d 20 64 | 31 3b 0d 09 41 57 4b 4e |AWKNUM d|1;..AWKN|
|00005270| 55 4d 20 64 32 3b 0d 09 | 73 68 6f 72 74 20 72 65 |UM d2;..|short re|
|00005280| 74 3b 0d 09 73 68 6f 72 | 74 20 6c 65 6e 31 2c 20 |t;..shor|t len1, |
|00005290| 6c 65 6e 32 3b 0d 0d 09 | 69 66 20 28 74 31 20 3d |len2;...|if (t1 =|
|000052a0| 3d 20 74 32 29 0d 09 09 | 72 65 74 75 72 6e 20 30 |= t2)...|return 0|
|000052b0| 3b 0d 09 64 31 20 3d 20 | 66 6f 72 63 65 5f 6e 75 |;..d1 = |force_nu|
|000052c0| 6d 62 65 72 28 74 31 29 | 3b 0d 09 64 32 20 3d 20 |mber(t1)|;..d2 = |
|000052d0| 66 6f 72 63 65 5f 6e 75 | 6d 62 65 72 28 74 32 29 |force_nu|mber(t2)|
|000052e0| 3b 0d 09 69 66 20 28 28 | 74 31 2d 3e 66 6c 61 67 |;..if ((|t1->flag|
|000052f0| 73 20 26 20 4e 55 4d 45 | 52 49 43 29 20 26 26 20 |s & NUME|RIC) && |
|00005300| 28 74 32 2d 3e 66 6c 61 | 67 73 20 26 20 4e 55 4d |(t2->fla|gs & NUM|
|00005310| 45 52 49 43 29 29 20 7b | 0d 09 09 64 20 3d 20 64 |ERIC)) {|...d = d|
|00005320| 31 20 2d 20 64 32 3b 0d | 09 09 69 66 20 28 64 20 |1 - d2;.|..if (d |
|00005330| 3d 3d 20 30 2e 30 29 09 | 2f 2a 20 66 72 6f 6d 20 |== 0.0).|/* from |
|00005340| 70 72 6f 66 69 6c 69 6e | 67 2c 20 74 68 69 73 20 |profilin|g, this |
|00005350| 69 73 20 6d 6f 73 74 20 | 63 6f 6d 6d 6f 6e 20 2a |is most |common *|
|00005360| 2f 0d 09 09 09 72 65 74 | 75 72 6e 20 30 3b 0d 09 |/....ret|urn 0;..|
|00005370| 09 69 66 20 28 64 20 3e | 20 30 2e 30 29 0d 09 09 |.if (d >| 0.0)...|
|00005380| 09 72 65 74 75 72 6e 20 | 31 3b 0d 09 09 72 65 74 |.return |1;...ret|
|00005390| 75 72 6e 20 2d 31 3b 0d | 09 7d 0d 09 74 31 20 3d |urn -1;.|.}..t1 =|
|000053a0| 20 66 6f 72 63 65 5f 73 | 74 72 69 6e 67 28 74 31 | force_s|tring(t1|
|000053b0| 29 3b 0d 09 74 32 20 3d | 20 66 6f 72 63 65 5f 73 |);..t2 =| force_s|
|000053c0| 74 72 69 6e 67 28 74 32 | 29 3b 0d 09 6c 65 6e 31 |tring(t2|);..len1|
|000053d0| 20 3d 20 74 31 2d 3e 73 | 74 6c 65 6e 3b 0d 09 6c | = t1->s|tlen;..l|
|000053e0| 65 6e 32 20 3d 20 74 32 | 2d 3e 73 74 6c 65 6e 3b |en2 = t2|->stlen;|
|000053f0| 0d 09 69 66 20 28 6c 65 | 6e 31 20 3d 3d 20 30 29 |..if (le|n1 == 0)|
|00005400| 20 7b 0d 09 09 69 66 20 | 28 6c 65 6e 32 20 3d 3d | {...if |(len2 ==|
|00005410| 20 30 29 0d 09 09 09 72 | 65 74 75 72 6e 20 30 3b | 0)....r|eturn 0;|
|00005420| 0d 09 09 65 6c 73 65 0d | 09 09 09 72 65 74 75 72 |...else.|...retur|
|00005430| 6e 20 2d 31 3b 0d 09 7d | 20 65 6c 73 65 20 69 66 |n -1;..}| else if|
|00005440| 20 28 6c 65 6e 32 20 3d | 3d 20 30 29 0d 09 09 72 | (len2 =|= 0)...r|
|00005450| 65 74 75 72 6e 20 31 3b | 0d 09 72 65 74 20 3d 20 |eturn 1;|..ret = |
|00005460| 6d 65 6d 63 6d 70 28 74 | 31 2d 3e 73 74 70 74 72 |memcmp(t|1->stptr|
|00005470| 2c 20 74 32 2d 3e 73 74 | 70 74 72 2c 20 6c 65 6e |, t2->st|ptr, len|
|00005480| 31 20 3c 3d 20 6c 65 6e | 32 20 3f 20 6c 65 6e 31 |1 <= len|2 ? len1|
|00005490| 20 3a 20 6c 65 6e 32 29 | 3b 0d 09 69 66 20 28 72 | : len2)|;..if (r|
|000054a0| 65 74 20 3d 3d 20 30 20 | 26 26 20 6c 65 6e 31 20 |et == 0 |&& len1 |
|000054b0| 21 3d 20 6c 65 6e 32 29 | 0d 09 09 72 65 74 75 72 |!= len2)|...retur|
|000054c0| 6e 20 6c 65 6e 31 20 3c | 20 6c 65 6e 32 20 3f 20 |n len1 <| len2 ? |
|000054d0| 2d 31 3a 20 31 3b 0d 09 | 72 65 74 75 72 6e 20 72 |-1: 1;..|return r|
|000054e0| 65 74 3b 0d 7d 0d 0d 73 | 74 61 74 69 63 20 4e 4f |et;.}..s|tatic NO|
|000054f0| 44 45 20 2a 6f 70 5f 61 | 73 73 69 67 6e 28 4e 4f |DE *op_a|ssign(NO|
|00005500| 44 45 20 2a 74 72 65 65 | 29 0d 7b 0d 09 41 57 4b |DE *tree|).{..AWK|
|00005510| 4e 55 4d 20 72 76 61 6c | 2c 20 6c 76 61 6c 3b 0d |NUM rval|, lval;.|
|00005520| 09 4e 4f 44 45 20 2a 2a | 6c 68 73 3b 0d 09 41 57 |.NODE **|lhs;..AW|
|00005530| 4b 4e 55 4d 20 74 31 2c | 20 74 32 3b 0d 09 6c 6f |KNUM t1,| t2;..lo|
|00005540| 6e 67 20 6c 74 65 6d 70 | 3b 0d 09 4e 4f 44 45 20 |ng ltemp|;..NODE |
|00005550| 2a 74 6d 70 3b 0d 0d 09 | 6c 68 73 20 3d 20 67 65 |*tmp;...|lhs = ge|
|00005560| 74 5f 6c 68 73 28 74 72 | 65 65 2d 3e 6c 6e 6f 64 |t_lhs(tr|ee->lnod|
|00005570| 65 2c 20 31 29 3b 0d 09 | 6c 76 61 6c 20 3d 20 66 |e, 1);..|lval = f|
|00005580| 6f 72 63 65 5f 6e 75 6d | 62 65 72 28 2a 6c 68 73 |orce_num|ber(*lhs|
|00005590| 29 3b 0d 0d 09 73 77 69 | 74 63 68 28 74 72 65 65 |);...swi|tch(tree|
|000055a0| 2d 3e 74 79 70 65 29 20 | 7b 0d 09 63 61 73 65 20 |->type) |{..case |
|000055b0| 4e 6f 64 65 5f 70 72 65 | 69 6e 63 72 65 6d 65 6e |Node_pre|incremen|
|000055c0| 74 3a 0d 09 63 61 73 65 | 20 4e 6f 64 65 5f 70 72 |t:..case| Node_pr|
|000055d0| 65 64 65 63 72 65 6d 65 | 6e 74 3a 0d 09 09 44 42 |edecreme|nt:...DB|
|000055e0| 47 5f 50 28 28 22 2b 2d | 58 22 2c 20 74 72 65 65 |G_P(("+-|X", tree|
|000055f0| 29 29 3b 0d 09 09 61 73 | 73 69 67 6e 5f 6e 75 6d |));...as|sign_num|
|00005600| 62 65 72 28 6c 68 73 2c | 0d 09 09 20 20 20 20 6c |ber(lhs,|... l|
|00005610| 76 61 6c 20 2b 20 28 74 | 72 65 65 2d 3e 74 79 70 |val + (t|ree->typ|
|00005620| 65 20 3d 3d 20 4e 6f 64 | 65 5f 70 72 65 69 6e 63 |e == Nod|e_preinc|
|00005630| 72 65 6d 65 6e 74 20 3f | 20 31 2e 30 20 3a 20 2d |rement ?| 1.0 : -|
|00005640| 31 2e 30 29 29 3b 0d 09 | 09 64 6f 5f 64 65 72 65 |1.0));..|.do_dere|
|00005650| 66 28 29 3b 0d 09 09 69 | 66 20 28 66 69 65 6c 64 |f();...i|f (field|
|00005660| 5f 6e 75 6d 20 3d 3d 20 | 30 29 0d 09 09 09 73 65 |_num == |0)....se|
|00005670| 74 5f 72 65 63 6f 72 64 | 28 66 69 65 6c 64 73 5f |t_record|(fields_|
|00005680| 61 72 72 5b 30 5d 2d 3e | 73 74 70 74 72 2c 20 66 |arr[0]->|stptr, f|
|00005690| 69 65 6c 64 73 5f 61 72 | 72 5b 30 5d 2d 3e 73 74 |ields_ar|r[0]->st|
|000056a0| 6c 65 6e 29 3b 0d 09 09 | 66 69 65 6c 64 5f 6e 75 |len);...|field_nu|
|000056b0| 6d 20 3d 20 2d 31 3b 0d | 09 09 72 65 74 75 72 6e |m = -1;.|..return|
|000056c0| 20 2a 6c 68 73 3b 0d 0d | 09 63 61 73 65 20 4e 6f | *lhs;..|.case No|
|000056d0| 64 65 5f 70 6f 73 74 69 | 6e 63 72 65 6d 65 6e 74 |de_posti|ncrement|
|000056e0| 3a 0d 09 63 61 73 65 20 | 4e 6f 64 65 5f 70 6f 73 |:..case |Node_pos|
|000056f0| 74 64 65 63 72 65 6d 65 | 6e 74 3a 0d 09 09 44 42 |tdecreme|nt:...DB|
|00005700| 47 5f 50 28 28 22 58 2b | 2d 22 2c 20 74 72 65 65 |G_P(("X+|-", tree|
|00005710| 29 29 3b 0d 09 09 61 73 | 73 69 67 6e 5f 6e 75 6d |));...as|sign_num|
|00005720| 62 65 72 28 6c 68 73 2c | 0d 09 09 20 20 20 20 6c |ber(lhs,|... l|
|00005730| 76 61 6c 20 2b 20 28 74 | 72 65 65 2d 3e 74 79 70 |val + (t|ree->typ|
|00005740| 65 20 3d 3d 20 4e 6f 64 | 65 5f 70 6f 73 74 69 6e |e == Nod|e_postin|
|00005750| 63 72 65 6d 65 6e 74 20 | 3f 20 31 2e 30 20 3a 20 |crement |? 1.0 : |
|00005760| 2d 31 2e 30 29 29 3b 0d | 09 09 64 6f 5f 64 65 72 |-1.0));.|..do_der|
|00005770| 65 66 28 29 3b 0d 09 09 | 69 66 20 28 66 69 65 6c |ef();...|if (fiel|
|00005780| 64 5f 6e 75 6d 20 3d 3d | 20 30 29 0d 09 09 09 73 |d_num ==| 0)....s|
|00005790| 65 74 5f 72 65 63 6f 72 | 64 28 66 69 65 6c 64 73 |et_recor|d(fields|
|000057a0| 5f 61 72 72 5b 30 5d 2d | 3e 73 74 70 74 72 2c 20 |_arr[0]-|>stptr, |
|000057b0| 66 69 65 6c 64 73 5f 61 | 72 72 5b 30 5d 2d 3e 73 |fields_a|rr[0]->s|
|000057c0| 74 6c 65 6e 29 3b 0d 09 | 09 66 69 65 6c 64 5f 6e |tlen);..|.field_n|
|000057d0| 75 6d 20 3d 20 2d 31 3b | 0d 09 09 72 65 74 75 72 |um = -1;|...retur|
|000057e0| 6e 20 74 6d 70 5f 6e 75 | 6d 62 65 72 28 6c 76 61 |n tmp_nu|mber(lva|
|000057f0| 6c 29 3b 0d 09 64 65 66 | 61 75 6c 74 3a 0d 09 09 |l);..def|ault:...|
|00005800| 62 72 65 61 6b 3b 09 2f | 2a 20 68 61 6e 64 6c 65 |break;./|* handle|
|00005810| 64 20 62 65 6c 6f 77 20 | 2a 2f 0d 09 7d 0d 0d 09 |d below |*/..}...|
|00005820| 74 6d 70 20 3d 20 74 72 | 65 65 5f 65 76 61 6c 28 |tmp = tr|ee_eval(|
|00005830| 74 72 65 65 2d 3e 72 6e | 6f 64 65 29 3b 0d 09 72 |tree->rn|ode);..r|
|00005840| 76 61 6c 20 3d 20 66 6f | 72 63 65 5f 6e 75 6d 62 |val = fo|rce_numb|
|00005850| 65 72 28 74 6d 70 29 3b | 0d 09 66 72 65 65 5f 74 |er(tmp);|..free_t|
|00005860| 65 6d 70 28 74 6d 70 29 | 3b 0d 09 73 77 69 74 63 |emp(tmp)|;..switc|
|00005870| 68 28 74 72 65 65 2d 3e | 74 79 70 65 29 20 7b 0d |h(tree->|type) {.|
|00005880| 09 63 61 73 65 20 4e 6f | 64 65 5f 61 73 73 69 67 |.case No|de_assig|
|00005890| 6e 5f 65 78 70 3a 0d 09 | 09 44 42 47 5f 50 28 28 |n_exp:..|.DBG_P((|
|000058a0| 22 41 53 53 49 47 4e 5f | 65 78 70 22 2c 20 74 72 |"ASSIGN_|exp", tr|
|000058b0| 65 65 29 29 3b 0d 09 09 | 69 66 20 28 28 6c 74 65 |ee));...|if ((lte|
|000058c0| 6d 70 20 3d 20 72 76 61 | 6c 29 20 3d 3d 20 72 76 |mp = rva|l) == rv|
|000058d0| 61 6c 29 20 7b 09 2f 2a | 20 69 6e 74 65 67 65 72 |al) {./*| integer|
|000058e0| 20 65 78 70 6f 6e 65 6e | 74 20 2a 2f 0d 09 09 09 | exponen|t */....|
|000058f0| 69 66 20 28 6c 74 65 6d | 70 20 3d 3d 20 30 29 0d |if (ltem|p == 0).|
|00005900| 09 09 09 09 61 73 73 69 | 67 6e 5f 6e 75 6d 62 65 |....assi|gn_numbe|
|00005910| 72 28 6c 68 73 2c 20 28 | 41 57 4b 4e 55 4d 29 20 |r(lhs, (|AWKNUM) |
|00005920| 31 29 3b 0d 09 09 09 65 | 6c 73 65 20 69 66 20 28 |1);....e|lse if (|
|00005930| 6c 74 65 6d 70 20 3d 3d | 20 31 29 0d 09 09 09 09 |ltemp ==| 1).....|
|00005940| 61 73 73 69 67 6e 5f 6e | 75 6d 62 65 72 28 6c 68 |assign_n|umber(lh|
|00005950| 73 2c 20 6c 76 61 6c 29 | 3b 0d 09 09 09 65 6c 73 |s, lval)|;....els|
|00005960| 65 20 7b 0d 09 09 09 09 | 2f 2a 20 64 6f 69 6e 67 |e {.....|/* doing|
|00005970| 20 69 74 20 74 68 69 73 | 20 77 61 79 20 73 68 6f | it this| way sho|
|00005980| 75 6c 64 20 62 65 20 6d | 6f 72 65 20 70 72 65 63 |uld be m|ore prec|
|00005990| 69 73 65 20 2a 2f 0d 09 | 09 09 09 66 6f 72 20 28 |ise */..|...for (|
|000059a0| 74 31 20 3d 20 74 32 20 | 3d 20 6c 76 61 6c 3b 20 |t1 = t2 |= lval; |
|000059b0| 2d 2d 6c 74 65 6d 70 3b | 20 29 0d 09 09 09 09 09 |--ltemp;| )......|
|000059c0| 74 31 20 2a 3d 20 74 32 | 3b 0d 09 09 09 09 61 73 |t1 *= t2|;.....as|
|000059d0| 73 69 67 6e 5f 6e 75 6d | 62 65 72 28 6c 68 73 2c |sign_num|ber(lhs,|
|000059e0| 20 74 31 29 3b 0d 09 09 | 09 7d 0d 09 09 7d 20 65 | t1);...|.}...} e|
|000059f0| 6c 73 65 0d 09 09 09 61 | 73 73 69 67 6e 5f 6e 75 |lse....a|ssign_nu|
|00005a00| 6d 62 65 72 28 6c 68 73 | 2c 20 28 41 57 4b 4e 55 |mber(lhs|, (AWKNU|
|00005a10| 4d 29 20 70 6f 77 28 28 | 64 6f 75 62 6c 65 29 20 |M) pow((|double) |
|00005a20| 6c 76 61 6c 2c 20 28 64 | 6f 75 62 6c 65 29 20 72 |lval, (d|ouble) r|
|00005a30| 76 61 6c 29 29 3b 0d 09 | 09 62 72 65 61 6b 3b 0d |val));..|.break;.|
|00005a40| 0d 09 63 61 73 65 20 4e | 6f 64 65 5f 61 73 73 69 |..case N|ode_assi|
|00005a50| 67 6e 5f 74 69 6d 65 73 | 3a 0d 09 09 44 42 47 5f |gn_times|:...DBG_|
|00005a60| 50 28 28 22 41 53 53 49 | 47 4e 5f 74 69 6d 65 73 |P(("ASSI|GN_times|
|00005a70| 22 2c 20 74 72 65 65 29 | 29 3b 0d 09 09 61 73 73 |", tree)|);...ass|
|00005a80| 69 67 6e 5f 6e 75 6d 62 | 65 72 28 6c 68 73 2c 20 |ign_numb|er(lhs, |
|00005a90| 6c 76 61 6c 20 2a 20 72 | 76 61 6c 29 3b 0d 09 09 |lval * r|val);...|
|00005aa0| 62 72 65 61 6b 3b 0d 0d | 09 63 61 73 65 20 4e 6f |break;..|.case No|
|00005ab0| 64 65 5f 61 73 73 69 67 | 6e 5f 71 75 6f 74 69 65 |de_assig|n_quotie|
|00005ac0| 6e 74 3a 0d 09 09 44 42 | 47 5f 50 28 28 22 41 53 |nt:...DB|G_P(("AS|
|00005ad0| 53 49 47 4e 5f 71 75 6f | 74 69 65 6e 74 22 2c 20 |SIGN_quo|tient", |
|00005ae0| 74 72 65 65 29 29 3b 0d | 09 09 69 66 20 28 72 76 |tree));.|..if (rv|
|00005af0| 61 6c 20 3d 3d 20 28 41 | 57 4b 4e 55 4d 29 20 30 |al == (A|WKNUM) 0|
|00005b00| 29 0d 09 09 09 66 61 74 | 61 6c 28 22 64 69 76 69 |)....fat|al("divi|
|00005b10| 73 69 6f 6e 20 62 79 20 | 7a 65 72 6f 20 61 74 74 |sion by |zero att|
|00005b20| 65 6d 70 74 65 64 20 69 | 6e 20 2f 3d 22 29 3b 0d |empted i|n /=");.|
|00005b30| 09 09 61 73 73 69 67 6e | 5f 6e 75 6d 62 65 72 28 |..assign|_number(|
|00005b40| 6c 68 73 2c 20 6c 76 61 | 6c 20 2f 20 72 76 61 6c |lhs, lva|l / rval|
|00005b50| 29 3b 0d 09 09 62 72 65 | 61 6b 3b 0d 0d 09 63 61 |);...bre|ak;...ca|
|00005b60| 73 65 20 4e 6f 64 65 5f | 61 73 73 69 67 6e 5f 6d |se Node_|assign_m|
|00005b70| 6f 64 3a 0d 09 09 44 42 | 47 5f 50 28 28 22 41 53 |od:...DB|G_P(("AS|
|00005b80| 53 49 47 4e 5f 6d 6f 64 | 22 2c 20 74 72 65 65 29 |SIGN_mod|", tree)|
|00005b90| 29 3b 0d 09 09 69 66 20 | 28 72 76 61 6c 20 3d 3d |);...if |(rval ==|
|00005ba0| 20 28 41 57 4b 4e 55 4d | 29 20 30 29 0d 09 09 09 | (AWKNUM|) 0)....|
|00005bb0| 66 61 74 61 6c 28 22 64 | 69 76 69 73 69 6f 6e 20 |fatal("d|ivision |
|00005bc0| 62 79 20 7a 65 72 6f 20 | 61 74 74 65 6d 70 74 65 |by zero |attempte|
|00005bd0| 64 20 69 6e 20 25 3d 22 | 29 3b 0d 09 09 6c 74 65 |d in %="|);...lte|
|00005be0| 6d 70 20 3d 20 6c 76 61 | 6c 20 2f 20 72 76 61 6c |mp = lva|l / rval|
|00005bf0| 3b 09 2f 2a 20 61 73 73 | 69 67 6e 6d 65 6e 74 20 |;./* ass|ignment |
|00005c00| 74 6f 20 6c 6f 6e 67 20 | 74 72 75 6e 63 61 74 65 |to long |truncate|
|00005c10| 73 20 2a 2f 0d 09 09 74 | 31 20 3d 20 6c 74 65 6d |s */...t|1 = ltem|
|00005c20| 70 20 2a 20 72 76 61 6c | 3b 0d 09 09 74 32 20 3d |p * rval|;...t2 =|
|00005c30| 20 6c 76 61 6c 20 2d 20 | 74 31 3b 0d 09 09 61 73 | lval - |t1;...as|
|00005c40| 73 69 67 6e 5f 6e 75 6d | 62 65 72 28 6c 68 73 2c |sign_num|ber(lhs,|
|00005c50| 20 74 32 29 3b 0d 09 09 | 62 72 65 61 6b 3b 0d 0d | t2);...|break;..|
|00005c60| 09 63 61 73 65 20 4e 6f | 64 65 5f 61 73 73 69 67 |.case No|de_assig|
|00005c70| 6e 5f 70 6c 75 73 3a 0d | 09 09 44 42 47 5f 50 28 |n_plus:.|..DBG_P(|
|00005c80| 28 22 41 53 53 49 47 4e | 5f 70 6c 75 73 22 2c 20 |("ASSIGN|_plus", |
|00005c90| 74 72 65 65 29 29 3b 0d | 09 09 61 73 73 69 67 6e |tree));.|..assign|
|00005ca0| 5f 6e 75 6d 62 65 72 28 | 6c 68 73 2c 20 6c 76 61 |_number(|lhs, lva|
|00005cb0| 6c 20 2b 20 72 76 61 6c | 29 3b 0d 09 09 62 72 65 |l + rval|);...bre|
|00005cc0| 61 6b 3b 0d 0d 09 63 61 | 73 65 20 4e 6f 64 65 5f |ak;...ca|se Node_|
|00005cd0| 61 73 73 69 67 6e 5f 6d | 69 6e 75 73 3a 0d 09 09 |assign_m|inus:...|
|00005ce0| 44 42 47 5f 50 28 28 22 | 41 53 53 49 47 4e 5f 6d |DBG_P(("|ASSIGN_m|
|00005cf0| 69 6e 75 73 22 2c 20 74 | 72 65 65 29 29 3b 0d 09 |inus", t|ree));..|
|00005d00| 09 61 73 73 69 67 6e 5f | 6e 75 6d 62 65 72 28 6c |.assign_|number(l|
|00005d10| 68 73 2c 20 6c 76 61 6c | 20 2d 20 72 76 61 6c 29 |hs, lval| - rval)|
|00005d20| 3b 0d 09 09 62 72 65 61 | 6b 3b 0d 09 64 65 66 61 |;...brea|k;..defa|
|00005d30| 75 6c 74 3a 0d 09 09 63 | 61 6e 74 5f 68 61 70 70 |ult:...c|ant_happ|
|00005d40| 65 6e 28 29 3b 0d 09 7d | 0d 09 64 6f 5f 64 65 72 |en();..}|..do_der|
|00005d50| 65 66 28 29 3b 0d 09 69 | 66 20 28 66 69 65 6c 64 |ef();..i|f (field|
|00005d60| 5f 6e 75 6d 20 3d 3d 20 | 30 29 0d 09 09 73 65 74 |_num == |0)...set|
|00005d70| 5f 72 65 63 6f 72 64 28 | 66 69 65 6c 64 73 5f 61 |_record(|fields_a|
|00005d80| 72 72 5b 30 5d 2d 3e 73 | 74 70 74 72 2c 20 66 69 |rr[0]->s|tptr, fi|
|00005d90| 65 6c 64 73 5f 61 72 72 | 5b 30 5d 2d 3e 73 74 6c |elds_arr|[0]->stl|
|00005da0| 65 6e 29 3b 0d 09 66 69 | 65 6c 64 5f 6e 75 6d 20 |en);..fi|eld_num |
|00005db0| 3d 20 2d 31 3b 0d 09 72 | 65 74 75 72 6e 20 2a 6c |= -1;..r|eturn *l|
|00005dc0| 68 73 3b 0d 7d 0d 0d 4e | 4f 44 45 20 2a 2a 73 74 |hs;.}..N|ODE **st|
|00005dd0| 61 63 6b 5f 70 74 72 3b | 0d 0d 73 74 61 74 69 63 |ack_ptr;|..static|
|00005de0| 20 4e 4f 44 45 20 2a 66 | 75 6e 63 5f 63 61 6c 6c | NODE *f|unc_call|
|00005df0| 28 4e 4f 44 45 20 2a 6e | 61 6d 65 2c 20 4e 4f 44 |(NODE *n|ame, NOD|
|00005e00| 45 20 2a 61 72 67 5f 6c | 69 73 74 29 0d 2f 2a 4e |E *arg_l|ist)./*N|
|00005e10| 4f 44 45 20 2a 6e 61 6d | 65 3b 09 09 20 6e 61 6d |ODE *nam|e;.. nam|
|00005e20| 65 20 69 73 20 61 20 4e | 6f 64 65 5f 76 61 6c 20 |e is a N|ode_val |
|00005e30| 67 69 76 69 6e 67 20 66 | 75 6e 63 74 69 6f 6e 20 |giving f|unction |
|00005e40| 6e 61 6d 65 20 2a 2f 0d | 2f 2a 4e 4f 44 45 20 2a |name */.|/*NODE *|
|00005e50| 61 72 67 5f 6c 69 73 74 | 3b 09 09 20 4e 6f 64 65 |arg_list|;.. Node|
|00005e60| 5f 65 78 70 72 65 73 73 | 69 6f 6e 5f 6c 69 73 74 |_express|ion_list|
|00005e70| 20 6f 66 20 63 61 6c 6c | 69 6e 67 20 61 72 67 73 | of call|ing args|
|00005e80| 2e 20 2a 2f 0d 7b 0d 09 | 72 65 67 69 73 74 65 72 |. */.{..|register|
|00005e90| 20 4e 4f 44 45 20 2a 61 | 72 67 2c 20 2a 61 72 67 | NODE *a|rg, *arg|
|00005ea0| 70 2c 20 2a 72 3b 0d 09 | 4e 4f 44 45 20 2a 6e 2c |p, *r;..|NODE *n,|
|00005eb0| 20 2a 66 3b 0d 09 76 6f | 6c 61 74 69 6c 65 20 6a | *f;..vo|latile j|
|00005ec0| 6d 70 5f 62 75 66 20 66 | 75 6e 63 5f 74 61 67 5f |mp_buf f|unc_tag_|
|00005ed0| 73 74 61 63 6b 3b 0d 09 | 76 6f 6c 61 74 69 6c 65 |stack;..|volatile|
|00005ee0| 20 6a 6d 70 5f 62 75 66 | 20 6c 6f 6f 70 5f 74 61 | jmp_buf| loop_ta|
|00005ef0| 67 5f 73 74 61 63 6b 3b | 0d 09 76 6f 6c 61 74 69 |g_stack;|..volati|
|00005f00| 6c 65 20 73 68 6f 72 74 | 20 73 61 76 65 5f 6c 6f |le short| save_lo|
|00005f10| 6f 70 5f 74 61 67 5f 76 | 61 6c 69 64 20 3d 20 30 |op_tag_v|alid = 0|
|00005f20| 3b 0d 09 76 6f 6c 61 74 | 69 6c 65 20 4e 4f 44 45 |;..volat|ile NODE|
|00005f30| 20 2a 2a 73 61 76 65 5f | 73 74 61 63 6b 2c 20 2a | **save_|stack, *|
|00005f40| 73 61 76 65 5f 72 65 74 | 5f 6e 6f 64 65 3b 0d 09 |save_ret|_node;..|
|00005f50| 4e 4f 44 45 20 2a 2a 6c | 6f 63 61 6c 5f 73 74 61 |NODE **l|ocal_sta|
|00005f60| 63 6b 2c 20 2a 2a 73 70 | 3b 0d 09 73 68 6f 72 74 |ck, **sp|;..short|
|00005f70| 20 63 6f 75 6e 74 3b 0d | 09 65 78 74 65 72 6e 20 | count;.|.extern |
|00005f80| 4e 4f 44 45 20 2a 72 65 | 74 5f 6e 6f 64 65 3b 0d |NODE *re|t_node;.|
|00005f90| 0d 09 2f 2a 0d 09 20 2a | 20 72 65 74 72 69 65 76 |../*.. *| retriev|
|00005fa0| 65 20 66 75 6e 63 74 69 | 6f 6e 20 64 65 66 69 6e |e functi|on defin|
|00005fb0| 69 74 69 6f 6e 20 6e 6f | 64 65 0d 09 20 2a 2f 0d |ition no|de.. */.|
|00005fc0| 09 66 20 3d 20 6c 6f 6f | 6b 75 70 28 76 61 72 69 |.f = loo|kup(vari|
|00005fd0| 61 62 6c 65 73 2c 20 6e | 61 6d 65 2d 3e 73 74 70 |ables, n|ame->stp|
|00005fe0| 74 72 29 3b 0d 09 69 66 | 20 28 21 66 20 7c 7c 20 |tr);..if| (!f || |
|00005ff0| 66 2d 3e 74 79 70 65 20 | 21 3d 20 4e 6f 64 65 5f |f->type |!= Node_|
|00006000| 66 75 6e 63 29 0d 09 09 | 66 61 74 61 6c 28 22 66 |func)...|fatal("f|
|00006010| 75 6e 63 74 69 6f 6e 20 | 60 25 73 27 20 6e 6f 74 |unction |`%s' not|
|00006020| 20 64 65 66 69 6e 65 64 | 22 2c 20 6e 61 6d 65 2d | defined|", name-|
|00006030| 3e 73 74 70 74 72 29 3b | 0d 23 69 66 64 65 66 20 |>stptr);|.#ifdef |
|00006040| 46 55 4e 43 5f 54 52 41 | 43 45 0d 09 66 70 72 69 |FUNC_TRA|CE..fpri|
|00006050| 6e 74 66 28 73 74 64 65 | 72 72 2c 20 22 66 75 6e |ntf(stde|rr, "fun|
|00006060| 63 74 69 6f 6e 20 25 73 | 20 63 61 6c 6c 65 64 5c |ction %s| called\|
|00006070| 6e 22 2c 20 6e 61 6d 65 | 2d 3e 73 74 70 74 72 29 |n", name|->stptr)|
|00006080| 3b 0d 23 65 6e 64 69 66 | 0d 09 63 6f 75 6e 74 20 |;.#endif|..count |
|00006090| 3d 20 66 2d 3e 6c 6e 6f | 64 65 2d 3e 70 61 72 61 |= f->lno|de->para|
|000060a0| 6d 5f 63 6e 74 3b 0d 09 | 65 6d 61 6c 6c 6f 63 28 |m_cnt;..|emalloc(|
|000060b0| 6c 6f 63 61 6c 5f 73 74 | 61 63 6b 2c 20 4e 4f 44 |local_st|ack, NOD|
|000060c0| 45 20 2a 2a 2c 20 63 6f | 75 6e 74 20 2a 20 73 69 |E **, co|unt * si|
|000060d0| 7a 65 6f 66 28 4e 4f 44 | 45 20 2a 29 2c 20 22 66 |zeof(NOD|E *), "f|
|000060e0| 75 6e 63 5f 63 61 6c 6c | 22 29 3b 0d 09 73 70 20 |unc_call|");..sp |
|000060f0| 3d 20 6c 6f 63 61 6c 5f | 73 74 61 63 6b 3b 0d 0d |= local_|stack;..|
|00006100| 09 2f 2a 0d 09 20 2a 20 | 66 6f 72 20 65 61 63 68 |./*.. * |for each|
|00006110| 20 63 61 6c 6c 69 6e 67 | 20 61 72 67 2e 20 61 64 | calling| arg. ad|
|00006120| 64 20 4e 4f 44 45 20 2a | 20 6f 6e 20 73 74 61 63 |d NODE *| on stac|
|00006130| 6b 0d 09 20 2a 2f 0d 09 | 66 6f 72 20 28 61 72 67 |k.. */..|for (arg|
|00006140| 70 20 3d 20 61 72 67 5f | 6c 69 73 74 3b 20 63 6f |p = arg_|list; co|
|00006150| 75 6e 74 20 26 26 20 61 | 72 67 70 20 21 3d 20 4e |unt && a|rgp != N|
|00006160| 55 4c 4c 3b 20 61 72 67 | 70 20 3d 20 61 72 67 70 |ULL; arg|p = argp|
|00006170| 2d 3e 72 6e 6f 64 65 29 | 20 7b 0d 09 09 61 72 67 |->rnode)| {...arg|
|00006180| 20 3d 20 61 72 67 70 2d | 3e 6c 6e 6f 64 65 3b 0d | = argp-|>lnode;.|
|00006190| 09 09 72 20 3d 20 6e 65 | 77 6e 6f 64 65 28 4e 6f |..r = ne|wnode(No|
|000061a0| 64 65 5f 76 61 72 29 3b | 0d 09 09 2f 2a 0d 09 09 |de_var);|.../*...|
|000061b0| 20 2a 20 63 61 6c 6c 20 | 62 79 20 72 65 66 65 72 | * call |by refer|
|000061c0| 65 6e 63 65 20 66 6f 72 | 20 61 72 72 61 79 73 3b |ence for| arrays;|
|000061d0| 20 73 65 65 20 62 65 6c | 6f 77 20 61 6c 73 6f 0d | see bel|ow also.|
|000061e0| 09 09 20 2a 2f 0d 09 09 | 69 66 20 28 61 72 67 2d |.. */...|if (arg-|
|000061f0| 3e 74 79 70 65 20 3d 3d | 20 4e 6f 64 65 5f 70 61 |>type ==| Node_pa|
|00006200| 72 61 6d 5f 6c 69 73 74 | 29 0d 09 09 09 61 72 67 |ram_list|)....arg|
|00006210| 20 3d 20 73 74 61 63 6b | 5f 70 74 72 5b 61 72 67 | = stack|_ptr[arg|
|00006220| 2d 3e 70 61 72 61 6d 5f | 63 6e 74 5d 3b 0d 09 09 |->param_|cnt];...|
|00006230| 69 66 20 28 61 72 67 2d | 3e 74 79 70 65 20 3d 3d |if (arg-|>type ==|
|00006240| 20 4e 6f 64 65 5f 76 61 | 72 5f 61 72 72 61 79 29 | Node_va|r_array)|
|00006250| 0d 09 09 09 2a 72 20 3d | 20 2a 61 72 67 3b 0d 09 |....*r =| *arg;..|
|00006260| 09 65 6c 73 65 20 7b 0d | 09 09 09 6e 20 3d 20 74 |.else {.|...n = t|
|00006270| 72 65 65 5f 65 76 61 6c | 28 61 72 67 29 3b 0d 09 |ree_eval|(arg);..|
|00006280| 09 09 72 2d 3e 6c 6e 6f | 64 65 20 3d 20 64 75 70 |..r->lno|de = dup|
|00006290| 6e 6f 64 65 28 6e 29 3b | 0d 09 09 09 72 2d 3e 72 |node(n);|....r->r|
|000062a0| 6e 6f 64 65 20 3d 20 28 | 4e 4f 44 45 20 2a 29 20 |node = (|NODE *) |
|000062b0| 4e 55 4c 4c 3b 0d 09 09 | 09 66 72 65 65 5f 74 65 |NULL;...|.free_te|
|000062c0| 6d 70 28 6e 29 3b 0d 20 | 20 09 09 7d 0d 09 09 2a |mp(n);. | ..}...*|
|000062d0| 73 70 2b 2b 20 3d 20 72 | 3b 0d 09 09 63 6f 75 6e |sp++ = r|;...coun|
|000062e0| 74 2d 2d 3b 0d 09 7d 0d | 09 69 66 20 28 61 72 67 |t--;..}.|.if (arg|
|000062f0| 70 20 21 3d 20 4e 55 4c | 4c 29 09 2f 2a 20 6c 65 |p != NUL|L)./* le|
|00006300| 66 74 20 6f 76 65 72 20 | 63 61 6c 6c 69 6e 67 20 |ft over |calling |
|00006310| 61 72 67 73 2e 20 2a 2f | 0d 09 09 77 61 72 6e 69 |args. */|...warni|
|00006320| 6e 67 28 0d 09 09 20 20 | 20 20 22 66 75 6e 63 74 |ng(... | "funct|
|00006330| 69 6f 6e 20 60 25 73 27 | 20 63 61 6c 6c 65 64 20 |ion `%s'| called |
|00006340| 77 69 74 68 20 6d 6f 72 | 65 20 61 72 67 75 6d 65 |with mor|e argume|
|00006350| 6e 74 73 20 74 68 61 6e | 20 64 65 63 6c 61 72 65 |nts than| declare|
|00006360| 64 22 2c 0d 09 09 20 20 | 20 20 6e 61 6d 65 2d 3e |d",... | name->|
|00006370| 73 74 70 74 72 29 3b 0d | 09 2f 2a 0d 09 20 2a 20 |stptr);.|./*.. * |
|00006380| 61 64 64 20 72 65 6d 61 | 69 6e 69 6e 67 20 70 61 |add rema|ining pa|
|00006390| 72 61 6d 73 2e 20 6f 6e | 20 73 74 61 63 6b 20 77 |rams. on| stack w|
|000063a0| 69 74 68 20 6e 75 6c 6c | 20 76 61 6c 75 65 0d 09 |ith null| value..|
|000063b0| 20 2a 2f 0d 09 77 68 69 | 6c 65 20 28 63 6f 75 6e | */..whi|le (coun|
|000063c0| 74 2d 2d 20 3e 20 30 29 | 20 7b 0d 09 09 72 20 3d |t-- > 0)| {...r =|
|000063d0| 20 6e 65 77 6e 6f 64 65 | 28 4e 6f 64 65 5f 76 61 | newnode|(Node_va|
|000063e0| 72 29 3b 0d 09 09 72 2d | 3e 6c 6e 6f 64 65 20 3d |r);...r-|>lnode =|
|000063f0| 20 4e 6e 75 6c 6c 5f 73 | 74 72 69 6e 67 3b 0d 09 | Nnull_s|tring;..|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.